8

私はすでに持っていて、onitemclickListenerそれは動作します、

list.setOnItemClickListener( new OnItemClickListener()
{
     public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3){
         ...
     }
});

ただし、別のボタンから同じ機能を実装する必要があります。

onitemclickListenerリストに既に存在するを参照するにはどうすればよいですか?

500行くらいあるので全部コピーして使い回しはしたくないです。

4

6 に答える 6

3

別のメソッドでコードをリファクタリングし、そのメソッドをボットonItemClickとから呼び出しますonClick

選択したアイテムがコードに必要な場合は、それを から引数として渡しますonItemClick。リストビューでは一度に複数のアイテムを選択できるため、ボタンonClickで を確認し、ListView.getCheckedItemIds任意の基準に基づいて必要なアイテムにロジックを適用する必要があります。

于 2013-01-29T08:30:51.330 に答える
0

2つの解決策があります。一般的な関数を記述し、どちらかのボタンがクリックされたときにこの関数を呼び出すことができます。もう1つの解決策は、2番目のボタンをクリックしたときに最初のボタンのビューを取得してからperformClick関数を呼び出すことです。

public void Click2()
{
 Button b = (Button)findViewById(R.id.button1);

 b.performClick();

}       
于 2013-01-29T08:41:07.583 に答える
0

OnItemClickListenerすでに記述したコードを使用する独自のクラスを作成し、それを呼び出しで使用しますlist.setOnItemClickListener(new myOnClickListener())

于 2013-01-29T08:29:57.153 に答える
0

OnItemClickListener オブジェクトを作成し、必要なときにいつでも使用する必要があります。

OnItemClickListener listener =  new OnItemClickListener(){
                 public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3)
                 {
                 ...
                 }
}

必要なときはいつでも:

list.setOnItemClickListener(listener);
于 2013-01-29T08:31:03.680 に答える
0

レイアウト xml に onItemClickListener を登録し、アクティビティに共通のメソッドを作成します。

于 2013-01-29T08:33:22.633 に答える