5

現在、メインのアクティビティにスレッドがあり、Web からダウンロードするものがあります。ダウンロードが完了したら、ViewPager 内の Fragments を更新する必要があります。

ダウンロードはサービスによって処理され、終了時にインテントをブロードキャストします。

したがって、基本的に、メインのアクティビティのコードは次のとおりです。

public class MyBroadcastReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        ((PositionFragment)mPagerAdapter.getItem(0)).updateUI();
    }
}

と私のPositionFragment:

public void updateUI() {
    mActivity = getActivity();

これがどのようにnullになるのか、私には本当にわかりません。これは本当に簡単に聞こえますが、何かが欠けているに違いありません!

何か案が?

編集:私のアダプター:

public class PageAdapter extends FragmentPagerAdapter {
    private List<Fragment> fragments;

    public PageAdapter(FragmentManager fm, List<Fragment> fragments) {
        super(fm);
        this.fragments = fragments;
    }

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

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

    @Override
    public CharSequence getPageTitle(int position) {
        return titles[position];
    }
}
4

2 に答える 2

5

フラグメントはおそらくアクティビティから切り離されています。詳細については、このリンクを参照してください。

于 2013-06-08T19:48:43.057 に答える
0

getActivity()フラグメントのonAttachメソッドが呼び出された後にのみ呼び出すことができます。ここが問題だと思います。

于 2013-06-08T19:51:28.757 に答える