リストアクティビティを介して配列リストを表示しています。また、おそらくハッシュマップでまとめることができるこれらのarraylist要素にIDを関連付けました。しかし、問題は、要素がクリックされたときに要素の特定の ID を取得したいことです。それを達成する方法。どんな助けでも大歓迎です。
3 に答える
ListView lv = getListView();
lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapter, View v, int position, long id) {
long pos=lv.getItemAtPosition(position);
//do your stuff here
}
});
独自の ArrayAdapter を使用している場合は、getItem(position) メソッドを実装できます。
getItemId(position)
アダプターにメソッドを実装している場合は、クリックされた位置に基づいて ID を返すことができます。ここで返す id は、 のメソッドのlong id
引数になります。onListItemClick(...)
ListActivity
getItemId(int position)
ArrayAdapter
クラスのメンバーです。ListActivity
は、 のアダプタからその関数を呼び出しますListView
。あなたがしなければならないことは、実装を提供することだけです。残りは問題なく機能します。
http://developer.android.com/reference/android/widget/ArrayAdapter.html#getItemId(int )
私のために働いた答えは次のとおりです。他の人に役立つことを願っています。Arraylist> testdata にデータがありました。私はこのようにそれを渡しました:-
this.setListAdapter(new SimpleAdapter(Grammar_tab_start.this, testdata ,
.layout.tab_single_item, new String[] { "module_name"},
new int[] { R.id.from}));
ListView lv = getListView();
to single list item on click
lv.setOnItemClickListener(new OnItemClickListener()
public void onItemClick(AdapterView<?> parent, View view,
int position, long id)
{
Log.i("check","Module item clicked");
HashMap<String,String> pos=(HashMap<String, String>) lv.getItemAtPosition(position) ;
Log.i("check","----" + position + "id" + id +"actual is "+ pos.get("module_id"));
}
lv.getItemAtPosition() 関数を使用して、クリックされたオブジェクト全体を取得しました。そして、そこからイードの部分を取りました。乾杯。