0

FragmentStatePagerAdapter を拡張するアダプターを備えたビューページャーがあります。これは、すべてのページで同じレイアウト (listView がある) を常に繰り返すフラグメントを表示する必要があります。問題は、現在の listView を更新する方法です。フラグメントの外側にあるボタンをクリックすると表示されますか? 表示されていないページにあるものだけを更新できますが、表示されているページまたは隣接するページは更新できません... 1つの可能な解決策はアダプターをリセットすることですが、それは正しいものではないようです.遅い...助けてくれませんか?

  public class MainActivity extends FragmentActivity implements OnClickListener{

    @Override
    protected void onCreate(Bundle arg0) {
            // TODO Auto-generated method stub
            super.onCreate(arg0);
            setContentView(R.layout.layout1);
             pagerAdapter = new AdapterPager(getSupportFragmentManager());
            ctx=this;
          mViewPager = (ViewPager) findViewById(R.id.pager);
            mViewPager.setAdapter(pagerAdapter);
            pagerTab=(PagerTabStrip) findViewById(R.id.pager_tab_strip);
           mViewPager.setCurrentItem(paginaCentrale);
            modifica=(ImageView)findViewById(R.id.modifica);
         modifica.setOnClickListener(this);


    }

    @Override
    public void onClick(View arg0) {
            // TODO onClick
            switch (arg0.getId()){
            case R.id.modifica:

                 //here I would like to call the method caricaLista() of the fragment

            break;
            }
    }


    public static class AdapterPager extends FragmentStatePagerAdapter {
   public AdapterPager(FragmentManager fm) {
            super(fm);
        }

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

                    return super.getItemPosition(object);
            }


            @Override
        public Fragment getItem(int i) {
            Fragment fragment;
            Bundle args = new Bundle();
          args.putInt("position", i);
            fragment=new Fragment1();
          fragment.setArguments(args);
     return fragment;
        }

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

        @Override
        public CharSequence getPageTitle(int i) {
            String title=String.valueOf(i);

            return title;
        }


    }

 public static class Fragment1 extends Fragment implements OnItemClickListener{

int fragmentPosition;
ListView lv;
      List<Lista> lista= new ArrayList<Lista>();

      public Fragment1(){    
          }
          public static Fragment1 newInstance(){
            return new Fragment1();
          }

  @Override
            public void onResume() {
                    // TODO Auto-generated method stub
                    super.onResume();
                    caricaLista("")}
            }
    @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle
savedInstanceState)    {
            View rootView = inflater.inflate(R.layout.fragment1, container, false);

lv=(ListView) rootView.findViewById(R.id.listViewCompiti);

            Bundle args = getArguments(); 
            int position=  args.getInt("position");

            fragmentPosition=position;
            lv.setOnItemClickListener(this);
     homeListAdapter= new HomeListAdapterWithCache(ctx,R.layout.list_item_home,lista);
                    lv.setAdapter(homeListAdapter);



    return rootView;
}
4

1 に答える 1