2

ユーザーがボタンを押してからフラグメントに送信するアクティビティがありますが、フラグメントを使用するために余分なものを渡したいです:

アクティビティ A (ボタンはどこにありますか):

public OnClickListener publish = new OnClickListener(){

       @Override
       public void onClick(View v) {


           Intent intent = new Intent(v.getContext(),ActivityB.class);
           intent.putExtra("friendIdRowID", rowID);
           startActivity(intent);


       }
   };

アクティビティ B はフラグメントをロードしています (余分な「friendIdRowID」を取得したい場所)、フラグメント:

 @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                Bundle savedInstanceState) {
            View view = inflater.inflate(R.layout.activity_main2, container, false);

            Bundle extras = getActivity().getIntent().getExtras();

        if (extras != null)
        {

            String myString = extras.getString("friendIdRowID");
}
        }

しかし、それは機能していません。エクストラを渡して取得するにはどうすればよいですか? ありがとう。

4

1 に答える 1

8

setArguments()のメソッドを使用してFragment情報をフラグメントに渡す必要があります。フラグメントを作成するアクティビティで、次のようにします。

YourFragment f = new YourFragment();
Bundle args = new Bundle();
args.putString("friendIDRowID", getIntent().getExtras().getString("friendIDRowID"));
f.setArguments(args);
transaction.add(R.id.fragment_container, f, "tag").commit();

次に、onCreate()メソッドをオーバーライドFragmentして、次の操作を行います。

Bundle args = getArguments();
String myString = args.getString("friendIdRowID");

アクティビティのエクストラと同様に、必要に応じて引数バンドルにいくつでも追加できます。お役に立てれば!

于 2013-11-02T22:19:44.800 に答える