当listview中的textview可选时,Listview无法点击

时间:2016-01-23 04:45:56

标签: android listview onclick click

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> parent, View view,
            int position, long id) {
        Log.d("test1","run");
    }
});

如果我这样设置,那么listview就不是火了:

    <TextView
        android:id="@+id/comment"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/username"
        android:layout_below="@+id/username"
        android:autoLink="web"
        android:textIsSelectable="true"
        android:textColor="#000000"
        android:textSize="14dp" />

删除textIsSelectable后,会触发onitemclicklistener。

我已经学习了一段时间,我在互联网上提出了一些建议

e.g。

android:descendantFocusability="blocksDescendants"放入父视图

这次触发clicklistener,但是当选择显示错误的文本时:

TextView does not support text selection. Selection cancelled.

两种功能都可以存在吗?非常感谢

2 个答案:

答案 0 :(得分:1)

您可以手动将OnClickListener添加到列表适配器中的父级。别忘了删除android:descendantFocusability="blocksDescendants"。我刚尝试过。

viewHolder.parent.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(context, "Click", Toast.LENGTH_SHORT).show();
            }
        });

答案 1 :(得分:1)

使用以下代码,删除

android:textIsSelectable="true"

它可以解决您的问题。

viewHolder.textView.setOnClickListener
(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                Toast.makeText(context, "Click", Toast.LENGTH_SHORT).show();
            }
        });