2017-03-29 10 views
0

このような断片から活動への働きは良いです。私はどのようにアクティビティからインテントの断片にインテントを作成できますか?

Intent intent = new Intent(Location.this,MessageActivity.class); 
startActivity(intent); 
+0

問題を詳しく説明できますか?フラグメントから新しいアクティビティに移動しますか? –

+0

はいフラグメントインテントから新しいアクティビティが必要です。 –

+0

あなたは意図から断片を呼び出すことはできません。あなたはgetsupportfragmentmanagerを呼ぶ必要があります 私の答えをチェックしてください。 –

答えて

0

あなたは断片を保持し、その後fragment_containerがでframeLayoutのIDであることでこれを追加するでframeLayout必要があります。あなたは何ができるか、その断片に意図を渡すことはできません

Fragment fragment = new MainFragment(); 
getSupportFragmentManager().beginTransaction() 
          .replace(R.id.fragment_container, fragment, ragment.getClass().getSimpleName()) 
          .commit(); 
+0

OPはアクティビティからフラグメントを読み込みたいとします。あなたの答えは要件の反対です。これを修正してください。 – tahsinRupam

1

は、フラグメントに活動からのデータを送信する方法を説明しました。そして、アクティビティから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(); 
4

アクティビティからフラグメントを作成することはできません...アクティビティのフラグメントのインテントを取得するためのフラグメントトランザクションがあります。

フォロー: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 
1

Fragment fragment = new TestFragment(); 
FragmentManager fragmentManager = getSupportFragmentManager(); 
fragmentManager.beginTransaction().replace(R.id.container, fragment).commit(); 
0
Fragment myFragment = new MyFragment(); 
FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction(); 
fragmentTransaction.add(R.id.youLayout, myFragment 
          fragmentTransaction.addToBackStack("youfragment"); 
          fragmentTransaction.commit(); 
+1

私たちの改善をロールバックしてあなたの投稿を欺くようなことはしないでください。 – FelixSFD

+0

申し訳ありませんが、私は見たことなしにロールバックしました。 –

0

、これを試してみてくださいまず、すべてのインテントはアクティビティへのアクティビティと同様に行動するために使用されますアクティビティーのインテントをフラグメント化することはできませんでした。 「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 
} 
} 
関連する問題