標準パターンに移動しようとしている方法ですが、次のようになります
フラグメントクラス内(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
あなたはどういう意味ですか?この関数をどう呼びますか? – Piyush
@Puyish質問を編集しました – Zidane