如何在Android中将Intent从Activity变为Fragment?

Ahs*_*lik 1 android

喜欢这个从片段到活动的良好运作.

Intent intent = new Intent(Location.this,MessageActivity.class);
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)

Rea*_*oid 7

你无法从Activity中获取Fragment的意图...有片段事务来获取Activity中的Fragment的Intent.

关注:FragmentTransaction

MyFragmentB fragmentB = new MyFragmentB();
Run Code Online (Sandbox Code Playgroud)

要替换片段:

getFragmentManager().beginTransaction()
                    .replace(R.id.container, fragmentB)
                    .addToBackStack(MyFragmentA.class.getSimpleName())
                    .commit();
Run Code Online (Sandbox Code Playgroud)

添加片段:

getFragmentManager().beginTransaction()
                    .add(R.id.container, fragmentB)
                    .addToBackStack(MyFragmentA.class.getSimpleName())
                    .commit();
Run Code Online (Sandbox Code Playgroud)

将Bundle传递给Fragment(从Activity到Fragment OR Fragment to Fragment):

Bundle bundle = new Bundle();
bundle.putString("String", "String text");
bundle.putInt("Integer", Integer value);
bundle.putDouble("Double", Double value);
bundle.putBoolean("Boolean", Boolean value);
...
fragmentB.setArguments(bundle);
Run Code Online (Sandbox Code Playgroud)

要获得片段中的Bundle:

getArguments().getString("String");//String text
getArguments().getInt("Integer");//Integer value
getArguments().getDouble("Double");//Double value
getArguments().getBoolean("Boolean");//Boolean value
Run Code Online (Sandbox Code Playgroud)