YMMVでも、私は奇妙なジレンマと考えています。ListViewsで再利用されたウィジェットを特定する方法
私はListViewの各行と行を記述するレイアウトファイルを使用しています(これについてはあまりエキゾチックではありません)。
アンドロイド:ID = "@ + 1 ID/CheckBox1を" アンドロイド:ID = "@ + ID/checkBox2" アンドロイド:ID = "@ + ID/checkBox3 Iのような、それぞれに割り当てられたIDを有しています「
アンドロイド:ID =」@ + ID/contactLabel」//
は今、これが意味をなすようには見えないのTextView、これらのIDは一意である必要がありますように、その第二 行のidは何ですか?つまり、「行1」がcheckbox1、checkbox2、checkbox3、およびcontactLabelの指定されたIDを尊重する場合、「行2」のIDは何ですか?
私は興味がありますが、チェックボックスの値をSharedPreferencesオブジェクトに保存する必要があるため、知りたいことがあります。
これを回避する方法についてのヒントはありますか?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 更新
私は解決する必要がある最初の事ListViewのクリックにどのように応答するかです。これは、このすべてに関連する私の現在の難問である:
ListViewコントロールは、それがクリックされています知っていない、または私は私のListActivityに、このイベントハンドラを追加しました私に
を教えてくれません。
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
String item = (String) getListAdapter().getItem(position);
Toast.makeText(this, item + " selected", Toast.LENGTH_LONG).show();
}
...しかし、呼び出されていません。表示されている連絡先をクリックしますが、移動しません。まだ喜びが...私は両方の「トースト」の行にブレークポイントを置いていない、と彼らは決して達しなかっ取得...
lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
Toast.makeText(getApplicationContext(),
"Click ListItem Number " + position, Toast.LENGTH_LONG)
.show();
}
});
:
は、私はまた、このようにそれを試してみました。が、私はここで読む:
http://www.vogella.de/articles/AndroidListView/article.html#listsactivity_layout
が...それは、「ケースで、あなたの活動に多くのちょうどリストビューを必要とする、あなたは ListActivityのためにあなた自身のレイアウトを使用することができます。」
...リストビューに加えてヘッダーとフッターを追加するので
「この場合、レイアウトには、android:id 属性が@android:id/listに設定されたListView要素が必要です。
だから、私は、レイアウトにこれを追加しました:
を...しかし、それは何の違い一つの方法または他のを行うものではありません。
ありがとうございます。これが利用可能であることを示すサンプルコードがあるとしますか? –
Nah ...問題がある場合は実装を見てうれしいです –
データセットからvalを参照することは、実際にはわかりません(実際にはほとんど手がかりがありません)。連絡先がロードされました。どの連絡先が自分のチェックボックスに関連付けられているかを推測する方法はありますか? –