リストビュー上のカスタムアダプタ内で選択したアイテムの値を取得しようとしました。私がクリックした場合、値が良好である、冒頭でOnItemClickリストビューのアイテムの値を取得
public void onItemClick(AdapterView<?> parent, View v,
int position, long id) {
View curr = parent.getChildAt((int) id);
TextView c = (TextView)curr.findViewById(R.id.tvPopUpItem);
String playerChanged = c.getText().toString();
Toast.makeText(Settings.this,playerChanged, Toast.LENGTH_SHORT).show();
}
、私はスクロールと私は別の項目をクリックしたら、私はそのクリックされた項目の間違った値を取得...:私は次のコードでこれを試してみてくださいこれを引き起こす原因は何ですか?
ありがとうございます。 getChildAtの位置がうまくいかなかった理由はありますか?私もこれを試しましたが、これも私にエラーをもたらしました.. –
あなたのアダプタに応じて、 'id'は完全に異なるインデックスを参照するかもしれません。たとえば、CursorAdapterはテーブルの主キーを 'id'で返します。一方、 'position'は常に行数を参照する必要があります。 – Sam
@Samありがとう、これは私にとって素晴らしい仕事です! –