简体   繁体   中英

Android: ViewPager with ImageView

I´m new in working with ViewPager . So i took a tutorial and it all works now. After the tutorial, I have a ViewPager with a TextView on it. Now, I want to add an ImageView to this TextView . Where do I have to start?

Here´s my code:

public static final MyFragment newInstance(String message){
    MyFragment f  = new MyFragment();
    Bundle bdl = new Bundle(1);
    bdl.putString(EXTRA_MESSAGE, message);
    f.setArguments(bdl);
    return f;
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
    String message = getArguments().getString(EXTRA_MESSAGE);
    View v = inflater.inflate(R.layout.activity_my_fragment, container, false);
    TextView messageTextView = (TextView)v.findViewById(R.id.tvTest);
    messageTextView.setText(message);

return v;
}

and

 public class Bilderbuch extends FragmentActivity {
        MyPageAdapter pageAdapter;
        int id;
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_bilderbuch);
            id = getIntent().getIntExtra("kinderid", 0);
            List<Fragment> fragments = getFragments();

            pageAdapter = new MyPageAdapter(getSupportFragmentManager(), fragments);

            ViewPager pager = (ViewPager)findViewById(R.id.viewpager);
            pager.setAdapter(pageAdapter);

        }

        private List<Fragment> getFragments(){
            List<Fragment> fList = new ArrayList<Fragment>();

            DBHelper dbh = new DBHelper(this);
            Cursor c = dbh.selectEreignis(id);
            int i = 0;
             while(c.moveToNext())
             { 
                 fList.add(MyFragment.newInstance(c.getString(c.getColumnIndex("ereignisname"))));
                 i++;
             }
            fList.add(MyFragment.newInstance("Fragment 1"));
            fList.add(MyFragment.newInstance("Fragment 2"));
            fList.add(MyFragment.newInstance("Fragment 3"));

            return fList;
        }

        private class MyPageAdapter extends FragmentPagerAdapter {
            private List<Fragment> fragments;

            public MyPageAdapter(FragmentManager fm, List<Fragment> fragments) {
                super(fm);
                this.fragments = fragments;
            }
            @Override
            public Fragment getItem(int position) {
                return this.fragments.get(position);
            }

            @Override
            public int getCount() {
                return this.fragments.size();
            }
        }

You have to write a new Fragment. In to the layout of the Fragment you must add an ImageView. Than you cant make something like below in your MyPagerAdapter:

   private class MyPageAdapter extends FragmentPagerAdapter {
            private List<Fragment> fragments;

            public MyPageAdapter(FragmentManager fm, List<Fragment> fragments) {
                super(fm);
                this.fragments = fragments;
            }
          @Override
        public Fragment getItem(int position) {
            switch (position) {
            case 0:
                return new MyFragment();
            case 1:
                return new ImageFragment(R.drawable.my_image); // The second view will return your ImageFragment

            default:
                return null;
            }
        }

            @Override
            public int getCount() {
                return this.fragments.size();
            }
        }

you have "activity_my_fragment.xml" inisde it put this code , with a image src .

<ImageView 
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/your_image_name_inside_resDrawable_folder"    
    />  

Edited :

use this article : http://architects.dzone.com/articles/android-tutorial-using

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM