单击列表视图中每列的单击事件

时间:2012-01-20 13:22:52

标签: android

如何为listview中的每列提供单独的点击事件?我在textviews的每一行中有两个listview。我想为每个textview处理两个单独的事件。

我该怎么做?请帮忙。

2 个答案:

答案 0 :(得分:4)

您可以通过在您设置TextView值的自定义适配器中为TextView定义onClickListener来处理该click事件

这是

的代码段
@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
              };
        });
     }
..........
}

答案 1 :(得分: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.
}