2011-09-27 2 views
0

自分のプログラムのJavaコードで作成された3つのリストビューを使用しています。私はonitemclicklistenerを実装するextendsアクティビティを使用します。さて、どのように別々のアイテムのクリックイベントを別々に設定するのですか? ご協力いただきありがとうございます。複数のリストアイテムを使用するにはどうすればいいですか?クリックしてクリックするとアクティビティが実装されますonClicklistener

+0

詳しく説明できますか?コードで..? – Ronnie

+0

このリンクの私のコードを参照してください:http://pastebin.com/fGV10fh5 –

答えて

1
public void onItemClick(AdapterView<?> adapter, View view, int index, long id) 
{ 
    switch(view.getId()) 
    { 
     case <listview1 Id> : //call method 1; break; 

     case <listview2 Id> : //call method 2; break; 

     case <listview3 Id> : //call method 3; break; 

    } 
} 

これは悪いmethod.Youであなたのコードをモジュール化することができますlisteners.Soのためのさまざまなクラスを実装する必要があります。

+0

リンクとしての任意のコード例? –

+0

すべてのリストビューを動的に(つまりidなしで)作成します。次に実装する方法は? –

+0

ちょっと@PattabiRaman、ビューを作成するときにsetTag(int key、Objectタグ)を使用し、ビューをチェックするときにgetTag(int key)を使用できます。 – dinidu

0

アクティビティにOnItemClickListenerを実装しないでください。代わりに、非一様なクラスなど別のクラスを使用してください。

または、単一のリスナーを使用し、callback methodのviewパラメーターを使用してイベントのソースを検出します。

0

あなたは

onItemClick(AdapterView<?> parent, View view, int position, long id) 

を参照してください場合は、親AdapterViewを持っています。どのアダプター・ビューがクリックされたかを確認することができます。

私は個人的にこのタイプのインスタンスに対してonItemClickListnerを実装しないと感じています。

3つのlistViewについてsetOnItemClickListener(listener1)...などを使用します。それは良いです。

listViewごとに別々のリスナーを記述することができます。

HTH。

0

各ListViewの新しいonItemClickLIstenerを作成する必要があります。

あなたはので、このようにします:

listView1.setOnItemClickListener(new OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> adapter, View view, int index, long id) { 

     } 
    });