2011-08-10 15 views
0

ViewPagerをどのように再インスタンス化できますか? 私のアダプタは次のようになります。PagerAdapterのインスタンス化

private class MyPagerAdapter extends PagerAdapter{ 
    @Override 
    public int getCount() { 
      return NUM_AWESOME_VIEWS; 
    } 

    @Override 
    public Object instantiateItem(View collection, int position) { 
     LayoutInflater inflater = (LayoutInflater)cxt.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     View layout = inflater.inflate(R.layout.search_result, null); 
     // 
     TextView title = (TextView)layout.findViewById(R.id.search_result_title); 
     TextView body = (TextView)layout.findViewById(R.id.search_result_body); 
     TextView byline = (TextView)layout.findViewById(R.id.search_result_byline); 
     TextView day = (TextView)layout.findViewById(R.id.search_result_date_day); 
     TextView month = (TextView)layout.findViewById(R.id.search_result_date_month); 
     TextView year = (TextView)layout.findViewById(R.id.search_result_date_year); 
     TextView page = (TextView)layout.findViewById(R.id.search_result_page); 
     TextView page_max = (TextView)layout.findViewById(R.id.search_result_page_max); 
     // 
     title.setText(list_title.get(position).toString()); 
     body.setText(list_body.get(position).toString()); 
     day.setText(list_day.get(position).toString()); 
     month.setText(list_month.get(position).toString()); 
     year.setText(list_year.get(position).toString()); 
     byline.setText(list_byline.get(position).toString()); 
     page.setText(Integer.toString(position+1)); 
     page_max.setText(Integer.toString(NUM_AWESOME_VIEWS)); 
     // 
     ((ViewPager) collection).addView(layout,0); 
     return layout; 
    } 

    @Override 
    public void destroyItem(View collection, int position, Object view) { 
      ((ViewPager) collection).removeView((View) view); 
    } 



    @Override 
    public boolean isViewFromObject(View view, Object object) { 
      return view==((View)object); 
    } 

    @Override 
    public void finishUpdate(View arg0) {} 


    @Override 
    public void restoreState(Parcelable arg0, ClassLoader arg1) {} 

    @Override 
    public Parcelable saveState() { 
      return null; 
    } 

    @Override 
    public void startUpdate(View arg0) {} 

} 

私は、リストへのデータの束をリロードする方法を見つけましたが、どのように私はonPostExecute(Asynctask)からすべてのページをリロードすることができます。

答えて

0

私はnotifyDataSetChanged()を呼び出すと思います。アダプター参照を使用すると、問題が解決されます。

+0

のonPostExecuteから

myPager.getAdapter().notifyDataSetChanged(); 

を呼びますか? Asynctaskからの実行後? AsyncTaskのonPostExecuteには – Tsunaze

+0

があります。あなたのリストに変更したいものすべてをロードした後。 –

+0

問題は機能していますが、ページを変更して新しいページを表示する必要があるため、奇妙です。 – Tsunaze

3

は、あなたのMyPagerAdapterクラスに以下を追加します。

@Override 
public int getItemPosition(Object object) { 
    return POSITION_NONE; 
} 

をし、私はそれを呼び出す必要がありますあなたのAsyncTask

関連する問題