因为我需要显示的不仅仅是片段中的列表。
所以我选择Fragment而不是ListFragment,我的布局看起来像

<linearlayout...>
    <TextView...>...<TextView/>
    <Button...>...<Button/>
    <ListView android:id = "@"+id/mylist" ...></ListView>
</linearylayout>


我暗示“ MyAdapter”扩展BaseAdapter,它具有如下的getView

@Override
public View getView(int position, View convertView, ViewGroup parent)
{
    if(position == 0)
    {
        return categroyView("Team leader");
    }
    else if (position == 2)
    {
        return categroyView("Team memebers");
    }
    else
    {
        LayoutInflater inflater = context.getLayoutInflater();
        View v = inflater.inflate(R.layout.row_group, null, false);
        return v;
    }
}


protected View categroyView(String text)
{
    TextView txtView = new TextView(context);
    txtView.setText(text);
    return txtView;
}


事实证明,当onItemClick的位置为0或2时,我可以收到它(如您所见,我是动态生成textView的。
同时,当onItemClick的位置不是0或2时,我无法收到它(我从XML返回膨胀视图)

我已经看到了一些有关自定义行布局是否具有可单击项(例如按钮)的讨论,这种情况会发生,但是即使我的行布局只有一个textView,它仍然无法接收onItemClick。

ps。


另外,对于其他设计问题,我选择“片段”而不是“活动”。
我知道我可以替代地在getView中添加v.setOnClickListene来解决此问题,但是如果我按此项目,则该项目仍然不会突出显示。

最佳答案

第二种观点是什么?如果那件事可能能够引起关注,那么如果您不希望点击鼠标,则可以坐下来而不是列表项,然后禁用它的点击,它将被传递给该项

也是这些长名单吗?充气过多会惹上麻烦

关于android - ListView中的Android自定义行无法接收onItemClick,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7865268/

10-09 07:09