0

我无法设置起始页的值(位置 0)

我的意思是 QuestionPagerAdapter.tv.setText("default") 必须在 MainActivity 的 onPageSelected(int position) case 0 中工作:但它给出了空点。但它适用于位置> 0

寻呼机适配器:

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);


}
}

主要活动:

    @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;

    }
4

2 回答 2

0

由于您已将 textView 实例传递给 AsyncTask,因此您可以在任务开始执行之前使用 onPreExecute() 方法设置默认值。onPreExecute() 方法在 UI 线程上运行,所以应该不是问题。

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

于 2013-04-18T02:21:44.760 回答
0

视图寻呼机的大小必须>=2,因此请检查您的适配器的大小>0,否则,

@Override
public int getCount() {
    return 2;// a view pager has minimum 2 pages
}
于 2013-04-18T04:32:26.750 回答