片段内的ListView上的OnItemClickListener无法正常工作

Dun*_*now 14 android listview fragment onclicklistener

编辑:已解决.如果在项目的XML中有任何可聚焦的东西,它将打破列表的触摸,换句话说,android:focusable = false对所有复选框,开关或类似于ur列表的任何内容.并完成=)

好的,这是我的问题.

我写了一个使用应用程序标签和碎片,这一切都我想,除了当我尝试捕捉上的ListView一个onItemClick事物的方式,它甚至不标记行作为触摸/按下/选择.

我一直在阅读一下,很多人也有同样的问题,但我没有找到任何帮助我的回复.

我不希望实现ListFragment,其实我甚至不知道如何/我为什么要和我既然所有的代码已经工作,我不知道,如果实现一个给我更多的工作要做,所以,这里是:

是否可以在片段内部实现单击listView的侦听器?如果是的话,怎么样?

PD:minSDK = 14,tatgetSDK = 15

Ash*_*hok 9

刚刚放

android:focusable="false"
android:clickable="false"
Run Code Online (Sandbox Code Playgroud)

在布局中.适用于所有文本视图,按钮等.


Dhe*_*kar 5

这是一个代码片段,可以满足您的需求。

ListView lv;

//code to get the listView instance using findViewByID etc

lv.setOnItemClickListener(new OnItemClickListener()
{
    @Override public void onItemClick(AdapterView<?> arg0, View arg1,int position, long arg3)
    { 
        Toast.makeText(EnclosingActivity.this, "Stop Clicking me", Toast.LENGTH_SHORT).show();
    }
});
Run Code Online (Sandbox Code Playgroud)

人们通常会因此而绊倒,看看您是否已经涵盖了这一点:

所有点击和回调(例如:菜单/操作栏回调)都发送到片段绑定的活动,因此它们必须在活动类中,而不是在片段类中。

  • @Dunnow,如果您将此代码放入片段类(扩展 Fragment 的类)中的“onViewCreated”代码中,只要您初始化 ListView (lv = (ListView)view.findViewById(R. id.YOURlv);) (2认同)

Vin*_*nay 5

这可能是有帮助的回答raghunanadan在下面的链接解决了我的问题

listview OnItemClick listner无法在片段中工作

将其添加到布局中

android:descendantFocusability="blocksDescendants"