私はactivity
2つ持ってい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 が発生します。
私の質問は、フラグメントをどこでどのように更新すればよいですか? それは私の活動の中にあるべきですか?はいの場合、どの方法で?そうでない場合、どこでフラグメントを更新する必要がありますか?
私を助けてください!!!