2

I used list view to list the items of my SQLite database as follows:

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();
}

Now I want to access the specific list item by using OnItemClickListener. How should i do it?

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 回答
2

只需调用listView.setOnItemClickListener()您的侦听器实现即可。

于 2013-09-01T14:00:52.097 回答
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 而不是显示 toast,因此最简单的方法是在布局中添加 TextView。查看更新的代码

希望这可以帮助。

于 2013-09-01T14:23:13.627 回答
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();
   }
});

parent -> 点击发生的 AdapterView。

view -> AdapterView 中被点击的视图(这将是适配器提供的视图)

position -> 视图在适配器中的位置。

id->被点击的项目的行id。

于 2013-09-01T14:04:15.827 回答