Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java intent一直在破坏我的应用程序?_Java_Android_Android Studio_Crash - Fatal编程技术网

Java intent一直在破坏我的应用程序?

Java intent一直在破坏我的应用程序?,java,android,android-studio,crash,Java,Android,Android Studio,Crash,我正在为我的班级构建一个简单的菜单应用程序。我的应用程序上有一个ListView,我正在尝试创建它,以便当您单击列表中的某个项目时,您将被带到该项目的相应活动。到目前为止,我的意图是在函数外部工作,但当我在函数内部运行它时,它会使我的程序崩溃。有人能给我指出正确的方向吗 //set the item listener menu.setOnItemClickListener(new OnItemClickListener() { @Override

我正在为我的班级构建一个简单的菜单应用程序。我的应用程序上有一个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));

}
您正在从OnItemClickListener内部调用runPasta函数,这意味着它引用了OnItemClickListener实例。尝试使用ActivityClassName.this而不仅仅是this。

如果您将其用作上下文,则它在setOnItemClickListener内部不起作用,因为它创建了一个匿名内部类。 所以你需要更具体一些。
将此替换为您的活动。这可能会解决您的问题。使用getContext可以提供适当的上下文。 试试这个:

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

您可以将adapterView上的实例传递给RunPastait方法,并从RunPastait方法中调用startActivitynew IntentadapterView.getContext,PastaItems.class

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

分享你的日志,如果你要求崩溃,那么每次你都应该发布崩溃日志以获得更好的解决方案。。。