0
현재 조각을 사용하려고하지만 현재 해결할 수없는 문제가 있습니다.FragmentAdapter에 조각에 대한 좋은 참조가 없습니다.
나는 4 개의 다른 단편을 보유하고있는 하나의 활동을 가지고 있습니다. 이 활동에서 웹으로 이동하여 필요한 다른 데이터를 얻은 ASyncTask를 시작한 다음이를 파편으로 보냅니다.
그러나 내 앱이 죽거나 다시 열리거나 방향을 바꿀 때 조각이 분명히 다시 만들어지고 사용자 정의 FragmentAdapter는 조각에 대한 좋은 참조를 보유하지 않습니다.
다음은 내 주요 활동 코드입니다.
public class MainActivity extends FragmentActivity {
MyPagerAdapter fgsAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//...
FragmentManager fm = super.getSupportFragmentManager();
fgsAdapter = new MyPagerAdapter(fm,this);
ViewPager myPager = (ViewPager) findViewById(R.id.home_pannels_pager);
myPager.setAdapter(fgsAdapter);
myPager.setCurrentItem(0);
}
@Override
protected void onResume() {
super.onResume();
ATaskGetUser task = new ATaskGetUser(callback, (ProgressBar) findViewById(R.id.PB_AsyncTask));
task.execute();
}
//What's called by the ASyncTask onPostExecute()
private void notifyDataChanged() {
fgsAdapter.notifyFragments(user.getItems());
}
private class MyPagerAdapter extends FragmentPagerAdapter {
private List<CardFragment> fragments = new ArrayList<CardFragment>();
private Context c;
public MyPagerAdapter(FragmentManager fm, Context c) {
super(fm);
CardFragment h = new HabitFragment();
CardFragment d = new DailyFragment();
CardFragment t = new ToDoFragment();
CardFragment r = new RewardFragment();
fragments.add(h);
fragments.add(d);
fragments.add(t);
fragments.add(r);
}
public int getCount() {
return fragments.size();
}
@Override
public CardFragment getItem(int position) {
Log.v("MainActivity_fgsmanager", "getItem()");
CardFragment f = (CardFragment) this.fragments.get(position);
return f;
}
public void notifyFragments(List<HabitItem> items) {
for(OnTasksChanged f : fragments) {
f.onChange(items);
}
}
}
}
그래서, 내가 할 수 있기를 원하는, 내
notifyDataChanged
기능에 onchange를 (내 네 조각으로 구현 된 인터페이스)를 호출 할 수있다. 이것이 가능한가, 내가 잘못된 생각을하고 있는가?
밖으로 분류 했습니까? –
죄송합니다. 귀하의 답변을보고 나서 시도하는 것을 잊었습니다. 그래서, 그것이 작동하는 것, 나는 좀 더 그것을 밖으로 시도해야 할 수도 있습니다. 그러나 어쨌든, 대단히 감사합니다. – MagicMicky