2016-10-27 8 views
0

アクティビティからフラグメントに移動する最善の方法を教えてください。これは私が今まで持っているものですが、それはうまくいかないようです。 これは私が機能(のgetCategory)Androidでアクティビティからフラグメントに移動する方法は?

private void selectItem(int group, int usage) 
    { 
     if (!shown) return; 
     classificationGroup = group; 

     ((DashboardActivity)getActivity()).getCallCategory(classificationGroup); 
    } 

を呼んだとの活動で、私は断片を作成するためのフラグメント

public Fragment getCallCategory(int position) { 


     return new CallLogsFragment(); 
    } 
+1

あなたはどういう意味ですか?この関数をどう呼びますか? – Piyush

+0

@Puyish質問を編集しました – Zidane

答えて

0

標準パターンに移動しようとしている方法ですが、次のようになります

フラグメントクラス内(android.support.v4.app.Fragmentをインポートしてください):

public class MyFragment extends Fragment { 

    public static final String TAG = "MyFragment"; 

    private int position; 

    // You can add other parameters here 
    public static MyFragment newInstance(int position) { 
     Bundle args = new Bundle(); 
     // Pass all the parameters to your bundle 
     args.putInt("pos", position); 
     MyFragment fragment = new MyFragment(); 
     fragment.setArguments(args); 
     return fragment; 
    } 


    @Override 
    public void onCreate(@Nullable Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     this.position = getArguments().getInt("pos"); 
    } 
} 
あなたの活動インサイド

:詳細は

MyFragment fragment = (MyFragment) getSupportFragmentManager().findFragmentByTag(MyFragment.TAG); 
    if(fragment != null){ 
     // Do something with fragment 
    } 

public class MainActivity extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     // Add your parameters 
     MyFragment fragment = MyFragment.newInstance(10); 
     // R.id.container - the id of a view that will hold your fragment; usually a FrameLayout 
     getSupportFragmentManager().beginTransaction() 
      .add(R.id.container, fragment, MyFragment.TAG) 
      .commit(); 
    } 
} 

あなたがフラグメントのインスタンスを見つけるためにFragmentManager#findFragmentByTag(文字列タグ)を使用し、あなたのフラグメント・インスタンスのパブリックメソッドにアクセスしたい

詳細な説明、断片の公式ドキュメントを読むことをお勧めします: https://developer.android.com/guide/components/fragments.html

関連する問題