У меня есть activity
с двумя fragments
. Я не использую <fragment/>
тегов, у меня есть два класса, которые распространяются 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.
}
Теперь проблема, я получаю некоторые широковещательные приемники в деятельности, из которых некоторых приемники обновления пользовательского интерфейса от первый фрагмент и некоторые обновления интерфейса от 2-го.
Один из моих радиовещательного приемника, определенного в моей основной актив- ности является:
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.
здесь, когда некоторые широковещательные приемники обновляют первый фрагмент, он работает правильно, но когда широковещательный приемник обновляет второй фрагмент из активности, я получаю NPE.
Мой вопрос: Как и где следует обновлять фрагмент? Должно ли это быть внутри моей деятельности? если да, то в каком методе? если нет, то где я должен обновить фрагмент?
Пожалуйста, помогите мне !!!
Макет (R.layout.bfragment) одинаковый для двух фрагментов? Есть ли R.id.bTable в обоих фрагментах или нет? –
, если вы спрашиваете, похоже ли обе схемы компоновки, а затем нет. Но оба макета завышены в одном контейнере, заменив предыдущий макет. – Shrikant
R.id.bTable - это ваш контейнер? –