ListView with Fragment within ViewPager

[postlink] https://the-best-way-of-life-is-islam.blogspot.com/2015/07/listview-with-fragment-within-viewpager.html [/postlink]

Current I have a ViewPager which have 3 different tabs(Peer, Sync and Share). In the Peer fragment, it contain a ListView with clickable items. OnItemClick I wish to open a new fragment which will display the detail of the selected item, But I am not sure how to properly implement this functionality...

Activity:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.file_sharing_activity);

    // Tabs stuff ...
    this.tabsAdapter = new TabsPagerAdapter(this.getSupportFragmentManager());
    viewPager = (ViewPager) findViewById(R.id.pager);
    viewPager.setAdapter(this.tabsAdapter);

    // Create tabs bar
    final ActionBar actionBar = getActionBar();
    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);


    // Create tab fragments
    this.peerListFragment = new PeerListFragment();
    this.syncFragment = new SyncFragment();
    this.shareFragment = new ShareFragment();

    // Create tabs
    actionBar.addTab(actionBar.newTab().setText("Peers").setTabListener(this.peerListFragment));
    actionBar.addTab(actionBar.newTab().setText("Sync").setTabListener(this.syncFragment));
    actionBar.addTab(actionBar.newTab().setText("Share").setTabListener(this.shareFragment));

    viewPager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
        @Override
        public void onPageSelected(int position) {
            // When swiping between pages, select the
            // corresponding tab.
            getActionBar().setSelectedNavigationItem(position);
        }
    });

    try {

        ProgramController.getInstance().initializeProgram(this);

    } catch (Exception e) {}

}

TabPagerAdapter:

private class TabsPagerAdapter extends FragmentPagerAdapter{

    public TabsPagerAdapter(FragmentManager fm) {
        super(fm);
    }

    @Override
    public Fragment getItem(int position) {

        switch (position) {
        case 0:
            return peerListFragment;
        case 1:
            return syncFragment;
        case 2:
            return shareFragment;

        default:
            return null;
        }
    }

    @Override
    public int getCount() {
        return NB_TABS;
    }
}

PeerListFragment

public class PeerListFragment extends Fragment implements ActionBar.TabListener{

ListView peerListView;

public PeerListFragment(){
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {

    View view = inflater.inflate(R.layout.fragment_peer_list, container, false);
    peerListView = (ListView) view.findViewById(R.id.list_peer);
    PeerListAdapter adapter = new PeerListAdapter(getActivity());

    peerListView.setAdapter(adapter);

    peerListView.setOnItemClickListener(new OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> parent, View view,
                int position, long id) {

            //Display detail fragment here


        }
    });

    return view;
}

اذا أعجبك الموضوع ساهم في نشره :

Enregistrer un commentaire

 
حقوق النشر: Published by | Template Created by | القناة على اليوتيب
copyright © 2014. The Best Way Of Life Is Islam -يمكن نقل كل ما هو موجود في موقع الرحمة تيوب
القرآن الكريم و الأحاديث النبوية أناشيد و دروس اسلامية منوعة موقع الفيديوهات الاسلامية
تطوير و تعريب مدونة ثعلوب