Как передать данные в определенный инстанс класса?

Ответить
Radzhab
Сообщения: 8
Зарегистрирован: 28 сен 2013, 23:26

Как передать данные в определенный инстанс класса?

Сообщение Radzhab » 27 июн 2015, 11:23

Проект который я использую https://github.com/chrisbanes/cheesesquare.
Я создаю четыре экземпляра класса CheeseListFragment. Я не могу понять, как получить доступ к конкретно третьему экземпляру класса и передать данные?

Код: Выделить всё

public class MainActivity extends AppCompatActivity implements CheeseListFragment.OnDataPass {
     Adapter adapter;
 
...
      adapter = new Adapter(getSupportFragmentManager());
 
            for (int i=0; i<4; i++){
                adapter.addFragment(new CheeseListFragment(), items[i]);
            }
...
 
 viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
            }
 
            @Override
            public void onPageSelected(int position) {
                onDataPass(String.valueOf(position)); // Хочу отправить данные в третий инстанс CheeseListFragment 
 
 
 
 
 
     static class Adapter extends FragmentPagerAdapter {
        private final List<Fragment> mFragments = new ArrayList<>();
        private final List<String> mFragmentTitles = new ArrayList<>();
 
 
 
        public Adapter(FragmentManager fm) {
            super(fm);
        }
 
        public void addFragment(Fragment fragment, String title) {
            mFragments.add(fragment);
            mFragmentTitles.add(title);
        }
 
        @Override
        public Fragment getItem(int position) {
 
 
            return mFragments.get(position);
        }
 
        @Override
        public int getCount() {
            return mFragments.size();
        }
 
        @Override
        public CharSequence getPageTitle(int position) {
            return mFragmentTitles.get(position);
        }
    }
}
 
 
 
 
public class CheeseListFragment extends Fragment {
 
    List<News> lnews;
    private RecyclerViewAdapter mRecyclerviewAdapter;
    OnDataPass dataPasser;
 
...
    protected String[] mDataset;
 
 
 
    public interface OnDataPass {
        public void onDataPass(String data);
    }
 
    @Override
    public void onAttach(Activity a) {
        super.onAttach(a);
        dataPasser = (OnDataPass) a;
 
    }
    public void passData(String data) 
        dataPasser.onDataPass(data);
    }

Ответить