2012-01-20 8 views
3

listviewの列ごとに個別のクリックイベントを設定するにはどうすればよいですか。私はlistviewの各行に2つのtextviewsを持っています。私はそれぞれtextviewの2つの別々のイベントを扱いたいと思う。リストビューの各列の個別のクリックイベント

どうすればいいですか?助けてください。あなたのカスタムリストビューを作成するとき

+0

私はあなたがTableLayoutを考えるかもしれないと思います。 –

答えて

3

あなたはあなたの中にあなたが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

のためのスニペットコードで設定したカスタムアダプターをTextViewのためonClickListenerを定義することにより、そのクリックイベントを処理することができます..あなたのTextViewのクリックリスナーを設定し、あなたのgetViewメソッド()でアダプタ..

を使用して

@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. 
} 
関連する問題