实现OnClickListener以列出列表的项目

时间:2013-09-01 13:52:13

标签: android sqlite android-listview onclicklistener

我使用列表视图列出了我的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 个答案:

答案 0 :(得分:10)

获取您的特定数据 - 实施setOnItemClickListener() -

position将返回列表的项目位置编号: -

listView.setOnItemClickListener(new OnItemClickListener() {
   @Override
   public void onItemClick(AdapterView<?> parent, View view,int position, long id) {
        String yourData = temparr.get(position);
   }
});

答案 1 :(得分:2)

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

答案 2 :(得分: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();
   }
});

父母 - &gt;发生点击的AdapterView。

view - &gt; AdapterView中被单击的视图(这将是适配器提供的视图)

位置 - &gt;适配器中视图的位置。

id-&gt;单击的项目的行ID。

答案 3 :(得分: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。请参阅更新的代码

希望这有帮助。