因为我需要显示的不仅仅是片段中的列表。
所以我选择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/