我可以在一个ListView项目中拥有不同的可点击视图吗?

时间:2012-06-25 12:23:16

标签: android listview clickable

我有一个Custom ListView,它有一个ImageView和一个TextView。我实现了ListView.setOnItemSelectedListener();

但这是一种使ImageView和TextView可单击(单独)的方法,我的意思是单击ImageView必须调用ActivityA并单击TextView必须调用ActivityB吗?

4 个答案:

答案 0 :(得分:3)

是的,您可以在Adapter类本身内执行此操作。只需在Adapter类中设置ImageView和Textview的单击侦听器即可。

答案 1 :(得分:2)

是的当然!

在自定义ListAdapter中,您可以设置onClickListener,如下所示:

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    View row = convertView;
    if( row == null ){
        LayoutInflater vi = (LayoutInflater) this.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        row = vi.inflate(this.textViewResourceId, null);
    }

    row.findViewById(R.id.image_item).setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub

        }
    });

    row.findViewById(R.id.text_item).setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub

        }
    });     
}

答案 2 :(得分:1)

同样的

有很多例子

喜欢this

点应该保持

  • 您需要将侦听器设置为getView中的每个视图(不要在其中创建) 每次在获取视图中只是传递已经创建的一个或者可以通过它 并在同一个适配器类中实现监听器)

  • 使视图(如TextView)可点击为真

  • 您还需要行位置,因此可以使用不同的逻辑 喜欢和&在此link

  • 中设置代码或视图旁白

答案 3 :(得分:1)

是的,你可以做到这一点。您可以在适配器类中单独设置onClickListener,然后将这些按钮或textview设置为不可聚焦,如果您希望使用onItemClickListener在单击整个列表项时执行不同的操作。

        yourButton.setFocusable(false);
        yourButton.setFocusableInTouchMode(false);