在运行android应用程序时..总是说应用已停止

时间:2017-07-19 14:27:54

标签: android

只有这部分代码导致应用已经停止..但如果我删除此代码一切正常......我该怎么办?

 listView= (ListView) findViewById(R.id.listView);
final String[] values= new String[]{"starter","juices","roties"};
ArrayAdapter<String> adapter=new ArrayAdapter<String>(this,R.layout.menu_fragment,R.id.listTextView,values);

listView.setAdapter(adapter);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> parent, View view, int pos, long id) {
        if(pos==0){
            Intent myIntent=new Intent(view.getContext(),StarterActivity.class);
            startActivityForResult(myIntent,0);
        }
        if(pos==1){
            Intent myIntent=new Intent(view.getContext(),JuicesActivity.class);
            startActivityForResult(myIntent,1);
        }
        if(pos==2){
            Intent myIntent=new Intent(view.getContext(),StarterActivity.class);
            startActivityForResult(myIntent,2);
        }
    }
});

在menu_fragment.xml

<ListView android:id="@+id/listView" android:layout_width="match_parent" android:layout_height="wrap_content"/> 
<TextView android:id="@+id/listTextView" android:layout_width="match_parent" android:layout_height="wrap_content" /> 

我在名为mFragments的com.events中创建了一个包,在该包中我创建了名为MenuFragment的java类

    public class MenuFragment extends Fragment {
    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) {
        View rootView=inflater.inflate(R.layout.menu_fragment,container,false);
        return rootView;
    }
}

并且在activity_starter.xml和activity_juices.xml中......只是有textview,其文本是starter和juices ......它应该相应地显示

总之我做了这个

https://www.youtube.com/watch?v=cOVwg3zitwg&t=390s

现在在同一个项目中我想做这个

https://www.youtube.com/watch?v=2kUBcbUMDKE&t=506s

但它不起作用..总是显示应用程序已停止错误..我使用了menufragment n,因为我显示了可扩展列表视图,它将显示我酒店的菜单。

2 个答案:

答案 0 :(得分:0)

您无法从view.getContext()

运行活动

使用片段或活动上下文

答案 1 :(得分:0)

而不是使用view.getContext()将其替换为MainActivity.this或您的类名称(从中调用startActivity()方法)。