1

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

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

4

4 回答 4

3

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

于 2012-06-25T12:25:10.613 回答
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

        }
    });     
}
于 2012-06-25T12:32:04.940 回答
1

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

        yourButton.setFocusable(false);
        yourButton.setFocusableInTouchMode(false);
于 2012-06-25T12:30:48.180 回答
1

有很多相同的例子

这样

点应该保持

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

  • 使视图(如 TextView )可点击 true

  • 您还需要行位置,以便可以使用不同的逻辑,如获取和设置标签或在此链接中查看参数

于 2012-06-25T12:27:18.593 回答