Android ListView不可单击,行中的所有小部件都是TextView
我有一个简单的行模型和一个片段中的ListView;ListView被正确填充,具有所有正确的维度、颜色等。问题是,单击一行不会触发任何事件 我的片段中的代码是:Android ListView不可单击,行中的所有小部件都是TextView,android,list,listview,textview,row,Android,List,Listview,Textview,Row,我有一个简单的行模型和一个片段中的ListView;ListView被正确填充,具有所有正确的维度、颜色等。问题是,单击一行不会触发任何事件 我的片段中的代码是: MyAdapter mAdapter = new MyAdapter(getActivity().getApplicationContext(), R.layout.list_row, strings); mList.setAdapter(mAdapter); mList.setOnItemClickListener(new OnI
MyAdapter mAdapter = new MyAdapter(getActivity().getApplicationContext(), R.layout.list_row, strings);
mList.setAdapter(mAdapter);
mList.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Log.d("LIST", "Selected item # " + position);
}
});
到所有文本视图,但到目前为止什么都没有。在MyAdapter类中: 在getView方法中,请使用:
convertView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Log.d("LIST", "Selected item # " + position);
}
});
在您的列表中_itemxml将android:genderantfocusability=“blocksDescendants”放在您拥有的线性布局或相对布局中。请检查下面的链接对您更有用我做了所有事情,就像我迄今为止阅读的每个教程一样,它应该可以工作。事实上,用android默认的简单行填充列表是可行的。这就是我认为行布局存在问题的原因。请尝试自定义listview示例您是否尝试使用ListFragment?我试过了。问题似乎出在行布局上,因为我真的无法让它工作。
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_height="wrap_content"
android:layout_width="match_parent">
<TextView
android:id="@+id/txt_surname"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:layout_weight="1"
android:text="@string/surname"
style="@style/ListStyleXLarge"/>
<!-- 4 more TextView just as the first one -->
</LinearLayout>
<style name="ListStyleXLarge">
<item name="android:textSize">
@dimen/text_size_large
</item>
<item name="android:textStyle">
bold
</item>
<item name="android:textColor">
@color/list_item_text_color
</item>
</style>
android:clickable="false"
android:focuseable="false"
android:focuseableInTouchMode="false"
convertView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Log.d("LIST", "Selected item # " + position);
}
});