5

正直なところ、私は尋ねる前にこれについていくつか検索しました。アクティビティからインテントを受け取る方法fragmentactivityビューページャーを使用しようとしています。ここで引数の取得でエラーが発生していますBundle extras = getArguments();

public class SingleViewActivity extends FragmentActivity {
    ImageView   imageView;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_page_view);

   ArrayList<Listitem> personArrayList = new ArrayList<Listitem>();
       // Listitem item = new Listitem("1", "http://developer.android.com/assets/images/android_logo.png");//I used to add it staticly

        Bundle extras = getArguments();
        if (extras != null) {
            extras = extras.getParcelableArrayList(ARG_PERSON_LIST);
            personArrayList.add(item);        }
    //    DemoObjectFragment f = DemoObjectFragment.newInstance(personArrayList);

        ViewPager    mViewPager = (ViewPager) findViewById(R.id.pager);
        Log.d("s", "singleview");


        DemoCollectionPagerAdapter mDemoCollectionPagerAdapter =      new DemoCollectionPagerAdapter( getSupportFragmentManager(),personArrayList);
        mViewPager.setAdapter(mDemoCollectionPagerAdapter);
4

3 に答える 3

4

2 つのアクティビティが必要になります。Activity投稿されたを開始する を投稿しなかったので、表示された を開始するActivityのみを含む単純なものを作成しました。ButtonActivity

コメントされた手順に注意してください。合計6つのステップがあります。

最初Activityの はArrayListデータを取得し、 はそれを 2 番目の に渡し、2 番目のActivityは に屈しますDemoCollectionAdapter

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_first);

        Button button = (Button) findViewById(R.id.button);

        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                // Step 1: Build an ArrayList to pass to the next Activity
                ArrayList<Listitem> items = new ArrayList<Listitem>();
                items.add(new Listitem("1", "http://developer.android.com/assets/images/android_logo.png"));
                items.add(new Listitem("2", "https://i.stack.imgur.com/B28Ca.jpg?s=328&g=1"));

                // Step 2: Create an Intent to start the next Activity
                Intent intent = new Intent(getApplicationContext(), SingleViewActivity.class);

                // Step 3: Put the ArrayList into the Intent
                intent.putParcelableArrayListExtra(SingleViewActivity.ARG_PERSON_LIST, items);

                // Step 4: Start the next Activity
                startActivity(intent);
            }
        });
    }
}

public class SingleViewActivity extends FragmentActivity {
    public static final String ARG_PERSON_LIST = "ARG_PERSON_LIST";

    private ArrayList<Listitem> items;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_page_view);

        // Step 5: Get the Bundle from the Intent that started this Activity
        Bundle extras = getIntent().getExtras();
        if (extras != null) {
            // Step 6: Get the data out of the Bundle
            items = extras.getParcelableArrayList(ARG_PERSON_LIST);
        } else {
            items = new ArrayList<Listitem>();
        }

        ViewPager pager = (ViewPager) findViewById(R.id.pager);
        DemoCollectionPagerAdapter adapter = new DemoCollectionPagerAdapter(getSupportFragmentManager(), items);
        pager.setAdapter(adapter);

    }
}
于 2016-01-15T20:37:30.060 に答える