6

私はactivity2つ持っていfragmentsます。私は<fragment/>タグを使用していません。拡張する2つのクラスがFragmentあり、そのフラグメントには次のものがあります。

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        return inflater.inflate(R.layout.bfragment, container, false); // this will inflate the Fragment in activity.
    }

問題は、一部のレシーバーが最初のフラグメントから UI を更新し、一部のレシーバーが 2 番目から UI を更新するアクティビティで、いくつかのブロードキャスト レシーバーを受信して​​いることです。

私のメイン アクティビティで定義されているブロードキャスト レシーバーの 1 つは次のとおりです。

private BroadcastReceiver bcReceived = new BroadcastReceiver() {

        @Override
        public void onReceive(Context arg0, Intent intent) {
            Log.d("", "BC Object Received");

            ActionBar actionbar = getActionBar();
            actionbar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
            ActionBar.Tab bTab = actionbar.newTab().setText("B");
            Fragment fragment = new BFragment();
            bTab.setTabListener(new MyTabsListener(fragment));
            actionbar.addTab(bTab, true);

            final LinearLayout linearLayout = (LinearLayout) findViewById(R.id.bTable);  // Getting null pointer exception here. linearLayout is not getting initialized.

上記のlinearLayoutを使用し、それを使用してビューを膨らませたいと思います。しかし、NPEを取得します。

ここで、一部のブロードキャスト レシーバーが最初のフラグメントを更新すると、正常に動作しますが、ブロードキャスト レシーバーがアクティビティから 2 番目のフラグメントを更新すると、NPE が発生します。

私の質問は、フラグメントをどこでどのように更新すればよいですか? それは私の活動の中にあるべきですか?はいの場合、どの方法で?そうでない場合、どこでフラグメントを更新する必要がありますか?

私を助けてください!!!

4

1 に答える 1