使自定义Android ListView部分可点击

时间:2013-11-03 13:34:31

标签: android listview onclick touch-feedback

我有一个带有自定义项目布局的Android ListView:

|              ...              |
+-----------------+-------------+
|  Labels & Info  |  ImageView  |
+-----------------+-------------+
|              ...              |

如果单击列表项的左侧(标签和信息)或右侧(ImageView),我希望发生两种不同的操作。此外,按下的项目部分应显示准确的触摸反馈(因为它会通过单击突出显示ListView项目)。

我知道如何为特定视图实现OnClickListeners,但我真正想要的是将列表项本身拆分为两个可点击区域。

我怎样才能做到这一点?

编辑:这是一张应该更准确地描述我想要的图像:

enter image description here

底部项目中的红色和绿色区域显示了点击时应该可点击和突出显示的两个区域。

2 个答案:

答案 0 :(得分:0)

要实现此功能,您必须编辑适配器的getView()函数。将onClickListeners添加到其中的相应ImageView和TextView。例如:

@Override
  public View getView(int position, View convertView, ViewGroup parent) {
    View rowView = convertView;
    if (rowView == null) {
      LayoutInflater inflater = context.getLayoutInflater();
      rowView = inflater.inflate(R.layout.rowlayout, null);
      ViewHolder viewHolder = new ViewHolder();
      viewHolder.text = (TextView) rowView.findViewById(R.id.TextView01);
      viewHolder.image = (ImageView) rowView
          .findViewById(R.id.ImageView01);
      rowView.setTag(viewHolder);
    }

    ViewHolder holder = (ViewHolder) rowView.getTag();
    //Add your onClickListeners here
    //holder.text.setOnClickListner(new OnClickListner...
    //holder.iamge.setOnClickListner(new OnClickListner...

    return rowView;
  }

答案 1 :(得分:0)

您可以在布局中放置两个TextView,与绿色区域和红色区域匹配,并为这些设置单击侦听器,并将文本设置为“”。这意味着你有5个不同的部分,3个你要向用户展示的部分和2个部分的点击听众,我希望你理解我的话。