我使用列表视图列出了我的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访问特定的列表项。我该怎么办?
答案 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。请参阅更新的代码
希望这有帮助。