0

フラグメントに listView があり、switch ステートメントを使用して全員を正当なアクティビティに誘導しようとしています。それを機能させることはできません。約 1 時間コードをいじっていますが、インテントを作成するときにまだ同じエラーが発生します。

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;

        }
    }

}

ここに私のエラーがあります:

ここに画像の説明を入力

4

2 に答える 2

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;

        }
于 2012-07-01T19:53:30.993 に答える
2

Intent のコンストラクターに Fragment インスタンスを最初のパラメーターとして指定し、現在の Activity を配置する必要があります。

これを試して:

Intent newActivity1 = new Intent(getActivity(), About.class);
于 2012-07-01T19:50:37.407 に答える