Question

I have view pager in my app. inside a viewpager there are two fragments [1] and [2] both with list view inside [A] and [B]. when I scroll listview [A] and switch fragment [2] I want listview [B] to be scrolled with the same amount automatically. please help

here is my snippet

public class CurrencyViewPager extends BaseFragment {

    private ListView mcurrencyListview;
    private GeoCurrencyService mCurrency = GeoCurrencyService.getInstance();
    ButtonPressListener buttonListener;
    private CurrencyAdapter mCurrencyAdapter;
    private String bankName;
    private boolean checkFlag;
    private ProgressBar mCurrencyProgress;
    private TextView mCurrencyLoading;
    private List<Currency> mList;
    private String recCode;
    private static int Firstposition;
    private final CurrencyScrollListener listener;
    private final int mListViewIndex;



    // constructor
    public CurrencyViewPager(List<Currency> myList, String name, boolean flag,String code, CurrencyScrollListener listener, int listViewIndex) {
        super();
        this.mList = myList;
        this.bankName = name;
        this.checkFlag = flag;
        this.recCode = code;
        this.listener = listener;
        this.mListViewIndex = listViewIndex;
    }

    // interface

    public interface ButtonPressListener {
        public void onListItemPressed(Currency object, String name,String code);
    }

    // attach on listener

    public void onAttach(Activity activity) {
        super.onAttach(activity);
        try {
            buttonListener = (ButtonPressListener) activity;
        } catch (ClassCastException e) {
            throw new ClassCastException(activity.toString()
                    + " must implement onButtonPressed");

        }
    }

    // creating the main View.

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        // TODO Auto-generated method stub

        Log.i("TAG","onCreateView");
        View view = inflater.inflate(R.layout.listbuy, container, false);
        mcurrencyListview = (ListView) view.findViewById(R.id.BuyList);



        mCurrencyAdapter = new CurrencyAdapter(getActivity(),
                R.layout.currency_row, mList, checkFlag, getLanguage());
        mcurrencyListview.setAdapter(mCurrencyAdapter);
        mcurrencyListview.setSelection(Firstposition);


                // calling method getCurrency which take bank code as a parameter
        /*getCurrency(code,null);*/

        // reference to the list view of the corresponding layout

        mcurrencyListview.setOnItemClickListener(new OnItemClickListener() {

            // onClick on the List item

            @Override
            public void onItemClick(AdapterView<?> arg0, View arg1,
                    int position, long arg3) {

                // getting Currency object according to the position
                Currency currencyObject = mCurrencyAdapter.getItem(position);
                // sending the object to the mainActivity
                buttonListener.onListItemPressed(currencyObject, bankName,recCode);


            }
        });

        return view;
    }


    // method getCurrency which takes bank code as a parameter and
    // sets the adapter to the list on onPostExecute.



}

and fragment adapter for viewpager

public class ViewPagerAdapter extends FragmentStatePagerAdapter implements
        CurrencyScrollListener {

    private String nBankName;
    private List<Currency> list;
    private String mycode;
    private CurrencyViewPager[] mFragments = new CurrencyViewPager[2];
    private int mCurrentScrollPosition;

    @Override
    public int getItemPosition(Object object) {
        // TODO Auto-generated method stub
        return super.getItemPosition(object);

    }

    public CurrencyViewPager getFCurrencyFragment(int index) {
        CurrencyViewPager pager = mFragments[index];
        if (pager == null) {
            if (index == 0) {
                pager = new CurrencyViewPager(list, nBankName, true, mycode,
                        this, 0);
            } else {
                pager = new CurrencyViewPager(list, nBankName, false, mycode,
                        this, 1);
            }
            mFragments[index] = pager;
        }


        return pager;
    }

    public ViewPagerAdapter(FragmentManager fm, List<Currency> currencyList,
            String name, String code) {
        super(fm);
        this.list = currencyList;
        this.nBankName = name;
        this.mycode = code;

    }

    @Override
    public Fragment getItem(int item) {
        Log.i("TAG","getItem");
        return getFCurrencyFragment(item);


    }

    @Override
    public int getCount() {

        return 2;
    }


}

No correct solution

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top