listview中的Android自定义行无法接收Item Click

时间:2011-10-23 09:05:14

标签: android

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

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

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

P.S。

  1. 另外,我选择Fragment而不是Activity来解决其他设计问题。
  2. 我知道我可以在getView中添加v.setOnClickListene来帮助解决这个问题,但是如果按下它,项目也不会突出显示。

1 个答案:

答案 0 :(得分:1)

两个观点中的位置是什么?如果那个东西可能能够获得焦点,那么如果你不希望inards被clickabke然后禁用它的点击它将被传递给项目

那么它将代替列表项。

这些长名单也是?如果你经常膨胀,你将遇到麻烦