试图让我的listView开始一项活动。得到一个奇怪的错误

时间:2012-07-01 19:45:09

标签: android listview android-intent android-listview android-fragments

我在片段中有一个listView,我正在尝试使用switch语句来指导每个人进行正确的活动。只是无法让它工作。我一直在搞乱代码大约一个小时,但在创建意图时我仍然遇到同样的错误。

public class MenuFragment extends ListFragment {
    String[] menu = { "Setting", "About" };

    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);

        setListAdapter(new ArrayAdapter<String>(getActivity(),
                android.R.layout.simple_list_item_1, menu));

        getListView().setCacheColorHint(0);
    }

    @Override
    public void onListItemClick(ListView l, View v, int position, long id) {
        super.onListItemClick(l, v, position, id);

        switch (position) {
        case 0:
            Intent newActivity = new Intent(this, Settings.class);
            startActivity(newActivity);
            break;
        case 1:
            Intent newActivity1 = new Intent(this, About.class);
            startActivity(newActivity1);
            break;

        }
    }

}

以下是我的错误:

enter image description here

2 个答案:

答案 0 :(得分:2)

你给Intent的构造函数一个Fragment实例作为第一个参数,当前的Activity应该去。

试试这个:

Intent newActivity1 = new Intent(getActivity(), About.class);

答案 1 :(得分:2)

尝试:

switch (position) {
        case 0:
            Intent newActivity = new Intent(getApplicationContext(), Settings.class);
            startActivity(newActivity);
            break;
        case 1:
            Intent newActivity1 = new Intent(getApplicationContext(), About.class);
            startActivity(newActivity1);
            break;

        }