【问题标题】:Trying to get my listView to start an activity. Getting a weird error试图让我的 listView 开始一项活动。得到一个奇怪的错误
【发布时间】:2012-07-01 19:45:09
【问题描述】:

我在片段中有一个 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;

        }
    }

}

这是我的错误:

【问题讨论】:

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


    【解决方案1】:

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

    试试这个:

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

    【讨论】:

    • getActivity() 和 getApplicationContext() 有什么区别?
    【解决方案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;
    
            }
    

    【讨论】:

    • getActivity() 和 getApplicationContext() 有什么区别?
    • 感谢 Zsombor 的代码为我工作,但我会阅读文档并尝试您的方法。
    • @EGHDK :两个代码都可以工作,但不同之处在于,在我的代码中,我将当前应用程序上下文作为第一个参数传递
    • 那么一种方法比另一种更好吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多