嗨,我的 Android 应用程序中的 onItemClick 遇到问题。我尝试了一下,但出现错误。我希望在 ListView 中从 sqlite 数据库获取数据,并且可以单击此列表中的某个值以使用该值启动其他 Activity 。请参阅我的代码以获取更多信息:
我的 Activity :
public class ShowActivity extends ListActivity {
我的方法:
private void ladeDaten() {
Cursor KlassenCursor = mDatenbank.rawQuery(KLASSEN_SELECT_ROW, null);
startManagingCursor(KlassenCursor);
android.widget.SimpleCursorAdapter KlassenAdapter = new android.widget.SimpleCursorAdapter(this,
android.R.layout.simple_list_item_1,
KlassenCursor,
new String[] {"name"},
new int[] {
android.R.id.text1
});
setListAdapter(KlassenAdapter);
ListView lv = (ListView)findViewById(android.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);
}
});
我想开始一项其他 Activity :(
最佳答案
发生这种情况是因为当您创建 Intent 时,第一个参数是上下文。您正在从 onClick() 创建 Intent ,因此其中的上下文不是外部 Activity 的上下文。 Intent 应该将当前 Activity 的上下文作为第一个参数
因此使用 ShowActivity.this
或 getApplicationContext()
而不是使用 this
Intent intent = new Intent(getApplicationContext(), SecondActivity.class)
或
Intent intent = new Intent(FirstActivity.this, SecondActivity.class)
就可以了。
如有任何疑问,请随时提出
关于java - 如何在我的 Android 应用程序中使用 onItemClick?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14479897/