3

複数の TextView を持つ ListView 用のカスタム アダプターがあります。onItemClickListener を ListView に設定し、TextView からテキストを抽出したいと考えています。私はこれを使ってみました:

String s =(String) ((TextView) mListView.findViewById(R.id.myNr)).getText(); 

しかし、期待どおり、デフォルトでは常に最初のリスト項目から値が返されます! (リストからアイテムIDを指定していないためだと思います)

私もこれを試しました:

String s =  (((TextView) mListView.getItemAtPosition(myItemInt)).
                          findViewById(R.id.myNr)).toString();

うまくいきませんでした!助言がありますか?

これは、次の関数の下で実装されます。

mListView.setOnItemClickListener(new OnItemClickListener() {
                public void onItemClick(AdapterView<?> myAdapter, View myView, 
                        int myItemInt, long mylng) {

             // String s statements

} 

編集:

完全なコードは次のとおりです。

 mListView_myentries.setOnItemClickListener(new OnItemClickListener() {
                public void onItemClick(AdapterView<?> myAdapter, View myView, 
                        int myItemInt, long mylng) {

                    String workRequestSelected = (String) ((TextView) mListView_myentries.findViewById(R.id.work_request)).getText();
                    String activitySelected = (String) ((TextView) mListView_myentries.findViewById(R.id.activity)).getText();
                    String statusSelected = (String) ((TextView) mListView_myentries.findViewById(R.id.status)).getText();
                    String workRequestDescSelected = (String) ((TextView) mListView_myentries.findViewById(R.id.desc)).getText();
                    String actualHoursString = (String) ((TextView) mListView_myentries.findViewById(R.id.actual_hours)).getText();

}
4

2 に答える 2

3

以下のコードを試してください

mListView.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> myAdapter, View myView,int myItemInt, long mylng) {
             String s =(String) ((TextView) myView.findViewById(R.id.myNr)).getText();
   }
}
于 2012-06-28T19:39:40.097 に答える
0

これは私にとっては完璧に機能しましたが、 listContacts(listview) を直接呼び出すと、常に最初のレコードが返されましたが、渡されたビューを呼び出すと、魅力的に機能しました。

public void onItemClick(AdapterView<?> parent, View view, int position,
        long id) {
    String item = (((TextView)view.findViewById(R.id.txtVwConID)).getText().toString());
    Toast.makeText(getApplicationContext(), "you selected: " + item, Toast.LENGTH_SHORT).show();

私のコードについて質問がある場合は、ここにもっと投稿してください

于 2012-06-30T19:55:02.623 に答える