これは私がこれを達成した方法です。私の(カスタム)アダプタクラス内:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = null;
if (convertView == null) {
LayoutInflater inflater = context.getLayoutInflater();
view = inflater.inflate(textViewResourceId, parent, false);
final ViewHolder viewHolder = new ViewHolder();
viewHolder.name = (TextView) view.findViewById(R.id.name);
viewHolder.button = (ImageButton) view.findViewById(R.id.button);
viewHolder.button.setOnClickListener
(new View.OnClickListener() {
@Override
public void onClick(View view) {
int position = (int) viewHolder.button.getTag();
Log.d(TAG, "Position is: " +position);
}
});
view.setTag(viewHolder);
viewHolder.button.setTag(items.get(position));
} else {
view = convertView;
((ViewHolder) view.getTag()).button.setTag(items.get(position));
}
ViewHolder holder = (ViewHolder) view.getTag();
return view;
}
基本的にトリックがsetTag
とgetTag
方法を介して位置インデックスを設定および取得することです。 items
変数は、自分のカスタム(アダプタ)オブジェクトを含むArrayList
を指します。
詳しくは、thisチュートリアルを参照してください。あなたが何かを明確にするために私を必要とするかどうかを教えてください。
にコードの下に書く私の任意の特定の機能があります使える?私はCursorAdapter関数の全リストを読んでいますが、外部からの使用はお勧めしないgetView()とは別に、idに基づいてビューを取得するように見えるものはありません。 –
リストを作成するために使用しているデータ構造は何ですか? –
CursorAdapterを通じてSqliteデータベースからリストを取り込みます。 –