gpt4 book ai didi

android - 在 ASyncTask 中设置 op ViewPager

转载 作者:行者123 更新时间:2023-11-29 14:33:34 26 4
gpt4 key购买 nike

我试图在 ASyncTask 中获取一些数据,一旦它完成,就将该数据传递给 viewpager 中的任何 fragment 。但是我得到以下异常:

java.lang.IllegalStateException: ViewPager 尚未绑定(bind)。

我必须遵循以下代码:

OnCreateView
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);

setContentView(R.layout.simple_tabs);
team_id = this.getIntent().getIntExtra("index", 0) + 1;
new getTeam().execute();
}

异步任务:

    @Override
protected Void doInBackground(Void... arg0) {
team = api.getTeamByID(team_id);
return null;
}

@Override
protected void onPostExecute(Void result) {
mAdapter = new TeamFragmentAdapter(getSupportFragmentManager());

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

mIndicator = (TabPageIndicator)findViewById(R.id.indicator);
mIndicator.setViewPager(mPager);

progressDialog.dismiss();
}

团队 fragment 适配器:

class TeamFragmentAdapter extends FragmentPagerAdapter implements TitleProvider {

ArrayList<Fragment> fragments = new ArrayList<Fragment>();
ArrayList<String> titels = new ArrayList<String>();

public TeamFragmentAdapter(FragmentManager fm) {
super(fm);
fragments.add(new TeamInformatieFragment(team));
titels.add("Informatie");
fragments.add(new ContactFragment());
titels.add("Informatie");
}



@Override
public Fragment getItem(int position) {
return fragments.get(position);
}

@Override
public int getCount() {
return fragments.size();
}

@Override
public String getTitle(int position) {
return titels.get(position);
}
}

当我将“OnPostExecute(Void result)”的内容移动到 OnCreateView 时,它起作用了……但我必须在创建 fragment 之前获取所有数据。

你能告诉我哪里出了问题吗? :(

最佳答案

已修复!我不得不将所有布局内容从 ASyncTask 移动到 OnPostExecute。它看起来像这样:

@Override  
protected void onPostExecute(Void result) {
setContentView(R.layout.simple_tabs);

mAdapter = new TeamFragmentAdapter(getSupportFragmentManager());

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

mIndicator = (TabPageIndicator)findViewById(R.id.indicator);
mIndicator.setViewPager(mPager);
invalidateOptionsMenu();
progressDialog.dismiss();
}

关于android - 在 ASyncTask 中设置 op ViewPager,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9773579/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com