意图不断崩溃我的应用程序?

时间:2017-02-16 05:46:32

标签: java android android-studio crash

我为我的班级构建一个简单的菜单应用程序。我在我的应用程序上有一个ListView,我正在努力使它当您单击列表中的项目时,您将被带到该项目的适当活动。到目前为止,我得到的意图在我的函数之外工作,但是当我在函数内部运行它会崩溃我的程序。任何人都可以指出我正确的方向

    //set the item listener
    menu.setOnItemClickListener(new OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
            String selected = ((TextView) view.findViewById(R.id.complaint)).getText().toString();
            if(selected.equals("Pasta")){
                runPasta();
            }
        }
    });


}

public void runPasta(){
    //Intent myIntent = new Intent(this, PastaItems.class);
    //myIntent.putStringArrayListExtra("finalList", foodList);
    this.startActivity(new Intent(this,PastaItems.class));

}

5 个答案:

答案 0 :(得分:4)

您正在runPasta()内调用OnItemClickListener功能,这意味着this引用OnItemClickListener实例。尝试使用ActivityClassName.this而不是this

答案 1 :(得分:4)

您使用this作为context,它在setOnItemClickListener内无效,因为它会创建匿名内部类。 所以你需要更具体。 将替换为 YourActivity.this

答案 2 :(得分:0)

这可能会解决您的问题。使用 getContext()可为您提供适当的上下文。 试试这个:

startActivity(new Intent(getContext(),PastaItems.class));

答案 3 :(得分:0)

您可以将adapterView上的实例传递给runPasta方法,也可以通过runPasta方法将其称为startActivity(new Intent(adapterView.getContext(),PastaItems.class));

答案 4 :(得分:0)

确保您已在清单中声明 PastaItems 活动。