2013-04-18 119 views
0

我不能爲起始頁設定值(位置0)Viewpager位置0與使用onPageSelected(0)

我的意思是QuestionPagerAdapter.tv.setText( 「默認」)必須MainActivity的使用onPageSelected工作(INT位置不工作)情況0:但它給零點。但它工作位置> 0

PagerAdapter:

public class QuestionPagerAdapter extends PagerAdapter{ 

    public static TextView tv; 

@Override 
    public Object instantiateItem(View collection, int pos) { 
     LayoutInflater inflater = (LayoutInflater) collection.getContext() 
       .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     View page = inflater.inflate(R.layout.page_quiz, null); 

     tv = (TextView)page.findViewById(R.id.questionText); 


} 
} 

MainActivity:

@Override 
      protected void onCreate(final Bundle savedInstanceState) { 
       super.onCreate(savedInstanceState); 

       this.setContentView(R.layout.activity_main); 

       mPager = (ViewPager)findViewById(R.id.pager);   
        QuestionPagerAdapter mAdapter = new QuestionPagerAdapter(); 
        mPager.setAdapter(mAdapter); 

@Override 
      public void onPageSelected(int position) { 
       switch (position) { 
      case 0: 
    //  QuestionPagerAdapter.tv.setText("default"); => doesnt works 
       break; 

        default: 
     QuestionPagerAdapter.tv.setText("default"); => works 
           break; 

    } 

回答

0

既然你已經傳遞到的AsyncTask TextView的情況下,你可以使用onPreExecute()方法來設置默認任務開始執行之前的值。 onPreExecute()方法在UI線程上運行,所以不應該是一個問題。

http://developer.android.com/reference/android/os/AsyncTask.html#onPreExecute()

+0

感謝您的回覆,我已經改變了代碼;刪除asynctask。只想爲起始頁面(位置0)設置一個值,但它會給出零點 – metemet06 2013-04-18 02:24:56

0

視圖傳呼機大小必須> = 2,所以請檢查您的適配器有大小> 0,否則,那麼,

@Override 
public int getCount() { 
    return 2;// a view pager has minimum 2 pages 
} 
相關問題