在列表视图中为每一列分别设置点击事件

3

我该如何为listview中的每一列设置单独的点击事件?每行listview中有两个textviews,我想为每个textview分别处理不同的事件。

我该怎么做?请帮忙。


我认为你可以考虑使用 TableLayout。 - a fair player
2个回答

4
你可以通过在自定义适配器中为TextView设置onClick监听器来处理该点击事件,当你设置TextView的值时。以下是这个过程的代码片段。
@Override
public View getView(int position, View convertView, ViewGroup parent) {
     if(convertView == null){
        LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        converView = inflater.inflate(R.layout.your_layout, null);
        final ViewHolder viewHolder = new ViewHolder();
        viewHolder.textView1 = (TextView) view.findViewById(R.id.text1);
        textView1.setOnClickListener(new OnClickListener(){
              @Override
              public void onClick(View v){
                    // do whatever you want
              };
        });
        viewHolder.textView2 = (TextView) view.findViewById(R.id.text2);
        textView2.setOnClickListener(new OnClickListener(){
              @Override
              public void onClick(View v){
                    // do whatever you want
              };
        });
     }
..........
}

0

当您使用适配器创建自定义Listview时...

在您的getview()中为Textview设置点击监听器...

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

    TextView textViewTwo = (TextView) v.findViewById(R.id.text_view_two);
    if (textViewTwo != null)
        textViewTwo.setOnClickListener(this);

    return v;
}

@Override
public void onClick(View v) {
    Log.d("Sample", "Clicked on tag: " + v.getTag());
    // Do something here, like start new activity.
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接