【发布时间】:2018-04-13 21:30:57
【问题描述】:
我有一个 ListView“resultList”,但点击一个项目并没有打开新的(详细的)Activity。我的错误是什么? 谢谢!
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
this.resultList = (ListView) findViewById(R.id.resultList) ;
this.dataSource = MyExpenseOpenHandler.getInstance(this).readAllExpenses();
this.adapter = new ExpenseOverviewAdapter(this, dataSource);
this.resultList.setAdapter(adapter);
this.resultList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(final AdapterView<?> adapterView, View view, final int i, final long l) {
Object element = adapterView.getAdapter().getItem(i);
if (element instanceof Expense) {
Expense expense = (Expense) element;
Intent intent = new Intent(MainActivity.this, ExpenseDetailActivity.class);
intent.putExtra(ExpenseDetailActivity.EXPENSE_KEY, expense);
startActivity(intent);
}
Log.e("Click on List: ", element.toString());
}
});
}
【问题讨论】:
-
你能把你的
Log.e("Click on List: ", element.toString());放在if(element instanceof Expense)块中看看它是否正在执行吗? -
简单地说
if(element instanceof Expense)就是false -
@Jochen Scheele DataSource 的类型是什么?我认为您的问题是您的 startActivity 代码根本没有执行,因为 element 不是 Expense 的实例。
-
感谢所有的cmets。我会寻求您的建议,然后再提出问题(如果需要)。非常感谢您的快速回复!
标签: android listview android-activity