Les Fragments et les Récepteurs de Radiodiffusion
J'ai un activity
avec deux fragments
. Je ne suis pas à l'aide de <fragment/>
les balises, j'ai deux classes qui s'étend Fragment
, dans ce fragment, j'ai:
@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.
}
Maintenant, le problème c'est que je suis la réception de certains récepteurs de radiodiffusion de l'activité à partir de laquelle certains récepteurs de mise à jour de l'INTERFACE utilisateur à partir du premier fragment et quelques mises à jour de l'INTERFACE utilisateur à partir du 2ème.
Un de mes récepteur de radiodiffusion définie dans mon principal acitivité est:
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.
Je veux utiliser le ci-dessus linearLayout et de l'utiliser pour gonfler une vue en elle. Mais pour obtenir des entrées en phase nationale.
ici, lorsque certains récepteurs de radiodiffusion à jour le premier fragment, il fonctionne correctement, mais quand un récepteur de radiodiffusion des mises à jour de la 2e fragment de l'activité, je reçois des NPE.
Ma question est: Comment et où dois-je mettre à jour le fragment? Devrait-il être à l'intérieur de mon activité? si oui, alors dans la méthode? si non, alors où dois-je mettre à jour le fragment?
S'il vous plaît aider moi!!!
- La mise en page (R. layout.bfragment) est le même pour les deux fragments ? Ne R. id.bTable est présent dans les deux fragments ou pas ?
- si vous vous demandez si les deux mises en page ressemble alors non. Mais les deux dispositions se gonfle dans le même conteneur en remplaçant le modèle précédent.
- R. id.bTable est votre conteneur de droit ?
- Pas de. bFragment mon conteneur. Et R. id.bTable est un linearLayout à l'intérieur de ce conteneur.
- Vous pouvez trouver une solution here.
Vous devez vous connecter pour publier un commentaire.
Votre activité de la logique devrait être séparé de votre des fragments de la logique.
Votre activité est censé s'occuper de la logique comme:
Mais votre activité est pas censé s'occuper de ce type de logique:
Il est de la responsabilité de l'fragment de mettre à jour son contenu.
D'autre part, l'activité pourrait dire le fragment qu'il doit mettre à jour de lui-même.
Avec cela à l'esprit, vos fragments devrait exposer des méthodes comme
OU
Dans votre activité, lorsque le
BroadcastReceiver
reçoit quelque chose que vous devriez:updateContent(With Blabla)
méthode.OU
updateContent()
méthode.Choisi le plus simple de la méthode en fonction de votre application logique d'entreprise.