このような断片から活動への働きは良いです。私はどのようにアクティビティからインテントの断片にインテントを作成できますか?
Intent intent = new Intent(Location.this,MessageActivity.class);
startActivity(intent);
このような断片から活動への働きは良いです。私はどのようにアクティビティからインテントの断片にインテントを作成できますか?
Intent intent = new Intent(Location.this,MessageActivity.class);
startActivity(intent);
あなたは断片を保持し、その後fragment_containerがでframeLayoutのIDであることでこれを追加するでframeLayout必要があります。あなたは何ができるか、その断片に意図を渡すことはできません
Fragment fragment = new MainFragment();
getSupportFragmentManager().beginTransaction()
.replace(R.id.fragment_container, fragment, ragment.getClass().getSimpleName())
.commit();
OPはアクティビティからフラグメントを読み込みたいとします。あなたの答えは要件の反対です。これを修正してください。 – tahsinRupam
をインテントにあるデータを取得してフラグメントに渡します。これを行うには、newInstanceパターンを使用することをお勧めします。この回答
チェック:I以下 How to pass intent from activity to fragment in Android
は、フラグメントに活動からのデータを送信する方法を説明しました。そして、アクティビティからFragmentを呼び出す方法。アクティビティXMLにフラグメントを定義するだけです。
活動から、あなたはとして意図してデータを送信します。
Bundle bundle = new Bundle();
bundle.putString("edttext", "From Activity");
// set Fragmentclass Arguments
Fragmentclass fragobj = new Fragmentclass();
fragobj.setArguments(bundle);
およびフラグメントonCreateView方法で:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
String strtext = getArguments().getString("edttext");
return inflater.inflate(R.layout.fragment, container, false);
}
をフラグメントを開きます。 getSupportFragmentManager()を呼び出さなければなりません。
Fragment fragment = new MainFragment();
getSupportFragmentManager().beginTransaction()
.replace(R.id.fragment_frame, fragment, fragment.getClass().getSimpleName())
.addToBackStack(null)
.commit();
アクティビティからフラグメントを作成することはできません...アクティビティのフラグメントのインテントを取得するためのフラグメントトランザクションがあります。
フォロー:FragmentTransaction
MyFragmentB fragmentB = new MyFragmentB();
フラグメント交換するには:外灘を渡すには
getFragmentManager().beginTransaction()
.add(R.id.container, fragmentB)
.addToBackStack(MyFragmentA.class.getSimpleName())
.commit();
:フラグメントを追加するには
getFragmentManager().beginTransaction()
.replace(R.id.container, fragmentB)
.addToBackStack(MyFragmentA.class.getSimpleName())
.commit();
をルフラグメント(Activityからの断片またはその断片に断片へ)へ:
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);
フラグメントでバンドルを取得するには:
getArguments().getString("String");//String text
getArguments().getInt("Integer");//Integer value
getArguments().getDouble("Double");//Double value
getArguments().getBoolean("Boolean");//Boolean value
は
Fragment fragment = new TestFragment();
FragmentManager fragmentManager = getSupportFragmentManager();
fragmentManager.beginTransaction().replace(R.id.container, fragment).commit();
Fragment myFragment = new MyFragment();
FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
fragmentTransaction.add(R.id.youLayout, myFragment
fragmentTransaction.addToBackStack("youfragment");
fragmentTransaction.commit();
私たちの改善をロールバックしてあなたの投稿を欺くようなことはしないでください。 – FelixSFD
申し訳ありませんが、私は見たことなしにロールバックしました。 –
、これを試してみてくださいまず、すべてのインテントはアクティビティへのアクティビティと同様に行動するために使用されますアクティビティーのインテントをフラグメント化することはできませんでした。 「FragmentManager」を使用することができます。例:
public class MainActivity extends AppCompatActivity {
Button firstFragment, secondFragment;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
firstFragment = (Button) findViewById(R.id.firstFragment);
secondFragment = (Button) findViewById(R.id.secondFragment);
firstFragment.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
loadFragment(new FirstFragment());
}
});
secondFragment.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
loadFragment(new SecondFragment());
}
});
}
private void loadFragment(Fragment fragment) {
// create a FragmentManager
FragmentManager fm = getFragmentManager();
// create a FragmentTransaction to begin the transaction and replace the Fragment
FragmentTransaction fragmentTransaction = fm.beginTransaction();
// replace the FrameLayout with new Fragment
fragmentTransaction.replace(R.id.frameLayout, fragment);
fragmentTransaction.commit(); // save the changes
}
}
問題を詳しく説明できますか?フラグメントから新しいアクティビティに移動しますか? –
はいフラグメントインテントから新しいアクティビティが必要です。 –
あなたは意図から断片を呼び出すことはできません。あなたはgetsupportfragmentmanagerを呼ぶ必要があります 私の答えをチェックしてください。 –