java如何在安卓应用程序中使用onItemClick?
嗨,我的安卓应用程序中的onItemClick有问题。我试过了,但是我出错了。我希望在listview中从sqlite数据库获取数据,并可以单击此列表中的某个值以使用此值启动其他活动。有关更多信息,请参阅我的代码:
我的活动:
public class ShowActivity extends ListActivity {
我的方法:
private void ladeDaten() {
Cursor KlassenCursor = mDatenbank.rawQuery(KLASSEN_SELECT_ROW, null);
startManagingCursor(KlassenCursor);
安卓.widget.SimpleCursorAdapter KlassenAdapter = new 安卓.widget.SimpleCursorAdapter(this,
安卓.R.layout.simple_list_item_1,
KlassenCursor,
new String[] {"name"},
new int[] {
安卓.R.id.text1
});
setListAdapter(KlassenAdapter);
ListView lv = (ListView)findViewById(安卓.R.id.list);
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent,View view,int position,long id){
Cursor cursor = (Cursor)parent.getItemAtPosition(position);
String item = cursor.getString(cursor.getColumnIndex("name"));
Intent intent = new Intent(this,ShowActivity.class); //here is the error
intent.putExtra("iteid", item);
startActivity(intent);
}
});
}
我的布局: ...
</ListView>
我的错误:
The constructor Intent(new AdapterView.OnItemClickListener(){}, Class<ShowActivity>) is undefined
我能做什么(
更新:
public void onItemClick(AdapterView<?> parent,View view,int position,long id){
Cursor cursor = (Cursor)parent.getItemAtPosition(position);
String item = cursor.getString(cursor.getColumnIndex("name"));
Intent intent = new Intent(ShowDayActitiy,ShowDayActivity.class); //here is the error
intent.putExtra("iteid", item);
startActivity(intent);
}
});
我想开始一项活动:(
# 1 楼答案
设置
Intent intent = new Intent(ShowActivity.this,ShowActivity.class);
当你在nItemClickListener中使用“this”时,你没有得到活动上下文# 2 楼答案
你的意图代码有问题
# 3 楼答案
使用
或者
而不是
要启动活动,您需要传递活动上下文,而不是视图
# 4 楼答案
改变这个
到
# 5 楼答案
在代码中选中import以获取mclickListener()。你用了适配器。他是一个忠实的听众
删除该导入并导入列表视图。我的听众
你可以用
onItemClick(AdapterView、AdapterView、View、, int位置,长值){
# 6 楼答案
这是因为在创建意图时,第一个参数是上下文。您正在从onClick()创建意图,因此它内部的上下文不是外部活动的上下文。意图应该以当前活动的上下文作为第一个参数
因此,使用
ShowActivity.this
或getApplicationContext()
而不是使用这个或者
会成功的
请随时提出任何进一步的疑问