2

リスト ビューを使用して、次のように SQLite データベースの項目を一覧表示しました。

listView = (ListView) findViewById(R.id.listView1);
db.open();
Cursor c = db.getAllHistory();
ArrayList<String> temparr = new ArrayList<String>();
if (c.moveToFirst()) {
    do {
        temparr.add(c.getString(0)+'\t'+c.getString(1)+'\t'+c.getString(2)+'\t'+c.getString(3)+'\t'+c.getString(4)+'\t');
    } while(c.moveToNext());
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, temparr);
    listView.setAdapter(adapter);
} else {
    db.close();
}

ここで、OnItemClickListener を使用して特定のリスト項目にアクセスしたいと考えています。どうすればいいですか?

4

4 に答える 4

10

特定のデータを取得するには-

setOnItemClickListener() を実装します-

リストのアイテムの位置番号をposition返します:-

listView.setOnItemClickListener(new OnItemClickListener() {
   @Override
   public void onItemClick(AdapterView<?> parent, View view,int position, long id) {
        String yourData = temparr.get(position);
   }
});
于 2013-09-01T14:12:26.040 に答える
0
listView.setOnItemClickListener(new OnItemClickListener() {
   @Override
   public void onItemClick(AdapterView<?> parent, View view,int position, long id) {
       // your code
       // Toast.makeText(context,temparr.get(position),Toast.LENGTH_SHORT).show();
   }
});

親 -> クリックが発生した AdapterView。

ビュー -> クリックされた AdapterView 内のビュー (これはアダプターによって提供されるビューになります)

位置 -> アダプター内のビューの位置。

id->クリックされた項目の行 ID。

于 2013-09-01T14:04:15.827 に答える
0

次のようにリスナーを設定できます。

このコードを入れてonCreate()

TextView disp = (TextView) findViewById(R.id.textView1);

listView.setOnItemClickListener(new OnItemClickListener() {

 @Override
 public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

                 String temp = (String) listView.getItemAtPosition(position);
                 disp.setText(temp);// display on screen
  }
});

編集:

トーストを表示するのではなく、永続的な方法で画面に listItem を表示したい場合、これを行う最も簡単な方法は、レイアウトに TextView を追加することです。更新されたコードを参照してください

お役に立てれば。

于 2013-09-01T14:23:13.627 に答える