Java intent一直在破坏我的应用程序?
我正在为我的班级构建一个简单的菜单应用程序。我的应用程序上有一个ListView,我正在尝试创建它,以便当您单击列表中的某个项目时,您将被带到该项目的相应活动。到目前为止,我的意图是在函数外部工作,但当我在函数内部运行它时,它会使我的程序崩溃。有人能给我指出正确的方向吗Java intent一直在破坏我的应用程序?,java,android,android-studio,crash,Java,Android,Android Studio,Crash,我正在为我的班级构建一个简单的菜单应用程序。我的应用程序上有一个ListView,我正在尝试创建它,以便当您单击列表中的某个项目时,您将被带到该项目的相应活动。到目前为止,我的意图是在函数外部工作,但当我在函数内部运行它时,它会使我的程序崩溃。有人能给我指出正确的方向吗 //set the item listener menu.setOnItemClickListener(new OnItemClickListener() { @Override
//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活动 分享你的日志,如果你要求崩溃,那么每次你都应该发布崩溃日志以获得更好的解决方案。。。