私は Android の初心者で、学習しようとしています。これが私の最初の質問です。質問が単純すぎる場合はご容赦ください。また、フォーラムの使い方が間違っている場合は教えてください。
ビューページャーを含むレイアウトを使用する FragmentActivity があります。このアクティビティは、MyFragmentPagerAdapter のインスタンスを作成し、それによって MyFragment のインスタンスがいくつか作成されます。すべて support.v4 バージョンです。
整数値 (ユーザーが以前に行った選択を表し、実際には描画可能な ID である可能性があります) をフラグメントに渡す方法を見つけようとしています。このアクティビティに渡すためにインテントを使用しています。バンドルを使用して FragmentPagerAdapter からフラグメントに値を渡すことができることはわかっていますが、アクティビティから FragmentPagerAdapter に値を取得する方法が見つかりません。コンストラクターの変更など、いくつかの方法を試しましたが、うまくいきませんでした。
簡単なものがありませんか?これを行う最善の方法は何ですか?
アクティビティ
public class SecondActivity extends FragmentActivity {
private MyIntegerAdapter1 mAdapter1;
private ViewPager mPager1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.second_layout);
mAdapter1 = new MyIntegerAdapter1(getSupportFragmentManager());
mPager1 = (ViewPager) findViewById(R.id.pager1);
mPager1.setAdapter(mAdapter1);
FragmentPagerAdapter
public class MyIntegerAdapter1 extends FragmentPagerAdapter {
public MyIntegerAdapter1(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
switch (position) {
case 0:
Fragment f1 = new IntegerFragment();
Bundle args1 = new Bundle();
args1.putInt("param", R.drawable.image1);
args1.putInt("number", 1);
f1.setArguments(args1);
return f1;
etc
断片
public class IntegerFragment extends Fragment {
private int imageResourceId;
private int numberSelected;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//change to avoid orientation crash
imageResourceId = getArguments().getInt("param");
numberSelected = getArguments().getInt("number");