我有一个 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());
}
});
}
最佳答案
您的代码似乎没问题。我认为问题在于您的 if 条件可能返回 false 并且 if 语句中的代码未被执行。您可以在 if 语句中放置一条日志消息以检查代码是否正在执行执行。
if (element instanceof Expense) {
Log.d(YOUR_LOG_TAG,"The if condition not executed")
Expense expense = (Expense) element;
Intent intent = new Intent(MainActivity.this, ExpenseDetailActivity.class);
intent.putExtra(ExpenseDetailActivity.EXPENSE_KEY, expense);
startActivity(intent);
}
如果您在 android 监视器中看到日志消息,您可以确定 if 条件中的代码未执行,因此您的 Activity 未启动。
关于android - 单击 ListView 项目未打开新 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47056990/