У меня есть активность с двумя
fragments
. Я не использую теги
, у меня есть два класса, которые расширяют 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.
}
Теперь проблема то есть я получаю несколько широковещательных приемников, из которых некоторые получатели обновляют пользовательский интерфейс с первого фрагмента, а некоторые обновляют пользовательский интерфейс со второго.
Один из моих широковещательных приемников, определенных в моей основной деятельности:
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 .
Мой вопрос:Как и где я должен обновить фрагмент?Должен ли он быть внутри моей активности?Если да, то в каком методе?Если нет, то где s мне обновить фрагмент?
Пожалуйста, помогите мне!!!