2012-01-26 13 views
0

私のプロジェクトでは、カスタムアダプタを使用してListViewの項目を定義しています。ですから、ListViewのitemの特別な振る舞いを定義したいのですが、これはアダプタのフィールドの値に依存します。このように:AndroidのListViewでカスタムアダプタのフィールドにアクセスする方法は?

protected void onListItemClick(ListView l, View v, int position, long id) { 
    super.onListItemClick(l, v, position, id); 
} 

だから、ここでは、この方法では、私はint型の位置によって定義された数のこと、から値を取得するために、アダプタの要素へのアクセスを取得したいです。だから、これを行うためのコードは何ですか?

答えて

1

カスタムアダプタを定義する場合は、onClick動作を登録するアクティビティにアダプタへの参照を保存できます。 getItemメソッドを適切に実装していれば、アダプタでgetItemを呼び出すことができます。

+0

だから私は l.getAdapter()のgetItem(位置) が、どのような次はコード化されてきた - 私はアイテムを取得し、私自身、アイテムの種類にそのような何か、それを実行したい:。 (TypeItemListView)l.getAdapterを().getItem(position)。 --->ここで私はアダプタのカスタムクラスのフィールドにアクセスできますか? –

+0

リストを作成するために作成するArrayAdapter への参照を保存します。そうすれば、apater.getItem()を呼び出すと正しい種類のオブジェクトが返されます。その後、アイテムで何でもできます。 – Janusz

2

あなたはそれが常に使用されているアダプタで十分な自信を持っている場合、あなたは単にそれをキャストすることができます:あなたは、リストから選択した項目(オブジェクト)を取得することができます

​​
0

。行ごとRESTAURENTオブジェクトを含むカスタムアダプタ、およびあなたのリストビュー名foodJntListView、その後、

Restaurent rest= (Restaurent) foodJntListView.getSelectedItem(); 

はあなたの選択した項目(オブジェクト)を与えると言うことができます。

関連する問題