早上好,
我对片段中setOnItemClickListener
的{{1}}事件有一个问题,它永远不会被解雇。
以下是ListView
中项目的代码:
listView
这是列表的xml代码(还包括带有一些侦听器的edittext):
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="80dip" >
<ImageView
android:id="@+id/url_foto"
android:layout_width="100dip"
android:layout_height="100dip"
android:src="@drawable/stub"
android:scaleType="centerCrop"/>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_toRightOf="@id/url_foto"
android:orientation="vertical"
android:paddingLeft="10sp" >
<TextView
android:id="@+id/nome"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textIsSelectable="true" />
<TextView
android:id="@+id/cognome"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textIsSelectable="true" />
最后是包含未被触发的事件的片段:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/LinearLayout01"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<EditText
android:id="@+id/cerca_il_prof_edit_search"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="search" />
<ListView
android:id="@+id/cerca_il_prof_list_result"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:cacheColorHint="#00000000"
android:drawSelectorOnTop="true"
android:focusable="true" />
有人可以帮帮我吗?
提前致谢。
问候。
朱塞佩
答案 0 :(得分:2)
要扩展@ Ashwin的答案,请注意ListView会阻止包含至少一个可调焦项的项目的点击次数 后代,但它不会使内容焦点可达调用 setItemsCanFocus(真)。一种解决方法是使用
禁用后代的可聚焦性android:descendantFocusability="blocksDescendants"
在定义列表项的布局中,尽管您可以禁用可以像前面提到的那样关注焦点的子项。 (首先从http://cyrilmottier.com/2011/11/23/listview-tips-tricks-4-add-several-clickable-areas/了解到这一点,但其他一些SO帖子也指出了这一点。)
答案 1 :(得分:1)
在onViewCreated
赞,
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
final ListView listViewProf=(ListView)getActivity().findViewById(R.id.cerca_il_prof_list_result);
listViewProf.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
}
});
}
答案 2 :(得分:1)
只需将android:focusable="false" android:clickable="false"
放入布局中即可。适用于所有文本视图,按钮等。
工作得很好。
答案 3 :(得分:0)
你会试试这个会对你有所帮助 lv.setOnItemClickListener(new android.widget.AdapterView.OnItemClickListener(){
@Override
public void onItemClick(android.widget.AdapterView<?> arg0,
View arg1, int arg2, long arg3) {
// TODO Auto-generated method stub
}
});
答案 4 :(得分:0)
我找到了解决方案。如果您将列表项的布局(您在listview适配器中设置的布局)更改为
android:clickable="false"
和
android:focusable="false"
有效。