2013-12-01 7 views
0

Я пытаюсь создать простое clickable listview во фрагменте. (а не фрагмент списка) Итак, когда вы нажимаете элемент, он переходит к новой подробной странице об этом элементе.Clickable listview во фрагменте

У меня есть работа с списком, но я не могу понять, как получить элементы кликабельными. Я очень новичок в программировании на Android.

Мое приложение разделено на 4 вкладки, это один из них.

Вопрос: Как создать элементы в виде списка (в фрагменте)?

Мой фрагмент Класс:

import android.os.Bundle; 
    import android.support.v4.app.Fragment; 
    import android.view.LayoutInflater; 
    import android.view.View; 
    import android.view.ViewGroup; 
    import android.widget.ArrayAdapter; 
    import android.widget.ListView; 

    public class BiblioFragment extends Fragment { 

final String[] items = new String[] { "Android", "iPhone", "WindowsMobile", 
     "Blackberry", "WebOS", "Ubuntu", "Windows7", "Max OS X", 
    "Linux", "OS/2" }; 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
     Bundle savedInstanceState) { 

    View view = inflater.inflate(R.layout.fragment_biblio, container, false); 

    ListView list = (ListView)view.findViewById(R.id.listView1); 
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, items); 
    list.setAdapter(adapter); 

    return view;  
} 

}

XML

<ListView 
    android:id="@+id/listView1" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentTop="true" > 
</ListView> 
+0

проверка http://stackoverflow.com/questions/13281197/android-how-to-create-clickable-listview – Developer

+0

Это не ListView в правом фрагменте? – user2883477

ответ

3

Вы должны добавить OnItemClickListener в свой список.

list.setOnItemClickListener(new OnItemClickListener() { 

     @Override 
     public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, 
       long arg3) { 
      // TODO Auto-generated method stub 
      Log.v("TAG", "CLICKED row number: " + arg2); 
     } 

    }); 

Строка, которую вы нажали, находится в arg2.

+0

Можете ли вы добавить это в мой основной код? Потому что я получаю ошибку «Недостижимый код». – user2883477

+0

Просто добавьте это после list.setAdapter (адаптер); – VM4

+0

Работал. И с этого момента я могу сделать оператор if, где arg2 = 1 запускает эту операцию, когда arg2 = 6 запускает эту операцию и т. Д.? Правильно? Или это проще? Потому что это будет означать, что я должен создать x количество действий для каждой подробной страницы. – user2883477

2
@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
    Bundle savedInstanceState) { 

View view = inflater.inflate(R.layout.fragment_biblio, container, false); 

ListView list = (ListView)view.findViewById(R.id.listView1); 
ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, items); 
list.setAdapter(adapter); 

list.setOnItemClickListener(new OnItemClickListener() 
    { 
     @Override 
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) 
     { 
     Intent intent = new Intent(MainActivity.this, nextActivity.class); 
     startActivity(intent); 
     } 
    }); 

return view;  

}

Смежные вопросы