3

まず、ハリケーンサンディの後、東海岸のみんなが大丈夫だといいのですが。私はニューヨーク市に住んでいますが、力を失うことさえありませんでした。私の考えは、それほど幸運ではなかったあなた方に向けられています。3日後に仕事に戻ったので、フラグメントのサポートが必要です。バンドルをフラグメントに渡そうとしていますが、機能しません。バンドルを渡そうとしない場合は正常に機能するため、一般的なフラグメントの設定が正しいことはわかっています。バンドルを渡す私のアクティビティは次のとおりです。

public void onItemClick(AdapterView<?> parent, View view, int position,
                long id) {
            Intent choice = new Intent(getApplicationContext(), com.MyProject.project.MyList.class);
            Bundle dataBundle = new Bundle();
            String chosenValue = values[position];
            dataBundle.putString("Level",chosenValue);
            choice.putExtras(dataBundle);
            startActivity(choice);  }

これがバンドルなしの私のアクティビティです。これは正常に機能します。

public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);
        String[] values = new String[] { "Enterprise", "Star Trek", "Next Generation", "Deep Space 9", "Voyager"};
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, values);
        setListAdapter(adapter);

}

ただし、バンドルから情報を取得しようとすると、機能しません。これが私のコードです:

public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);
    Bundle info = getArguments();


    String level = info.getString("level");
    String[] values = new String[] {level, level};
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, values);
    setListAdapter(adapter);


}

これを実行してアクティビティで選択したものをクリックすると、アプリがハングします。LogCatは私にこれに関する多くの情報を与えていないようです。誰かがここで何か問題を見ますか?

ありがとう!

4

1 に答える 1

5

フラグメントに引数を設定する必要があります。

アクティビティのonCreate

Fragmet myFragment = new MyFragment();
myFragment.setArguments( getIntent().getExtras() );
于 2012-11-01T19:48:33.937 に答える