android - 单击 ListView 项目未打开新 Activity

标签 android listview android-activity

我有一个 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/

相关文章:

android - Kotlin : pass data from adapter to activity

android - 在 Android 上使用 JetS3t 时抛出 IncompatibleClassChangeError 异常

wpf - 如何验证虚拟化 ListView ?

android - 通过 XML 设置选中状态

c# - 从 SQLite 数据库保存和检索 png?

java - 溢出菜单更改 ListView 数据

Android 使用组件名称启动 Activity

java - finish() 方法在 AsyncTask 内部不起作用

android - 将 .mid 文件转换为任何音频格式,如 android 中的 .wav 或 .mp3 文件?

android - java.security.InvalidKeyException : Illegal key size