1. Nimm jetzt an unserem Uhans - 3. ADVENT - Gewinnspiel teil - Alle Informationen findest Du hier!

Probleme mit Context bei Tabs

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von Flixius, 29.07.2012.

  1. Flixius, 29.07.2012 #1
    Flixius

    Flixius Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    132
    Erhaltene Danke:
    4
    Registriert seit:
    24.10.2010
    Hi,

    ich habe große Probleme mit dem Context meiner App. Als Grundgerüst habe ich mir einen Sample Code heruntergeladen in dem eine Actionbar implementiert ist. So weit funktioniert das auch alles ganz gut. Die Tabs werden angezeigt, man kann zwischen ihnen hin und her wechseln und so weiter.

    Ich habe nun schein ein paar Stunden rumprobiert aber ein einfaches Toast bei Buttonklick will mir einfach nicht gelingen. Es scheint etwas damit zu tun zu haben dass der Context der Activity gehört aus der die Tabs aufgerufen und angezeigt werden.

    Um euch nicht mit Quellcode zu überschütten, poste ich erst mal nur was ich alles schon in der TabActivity ausprobiert habe. Auf Nachfrage gebe ich euch natürlich auch den weiteren Quelltext.

    Code:
    //ALLE AUSKOMMENTIERTEN VERSUCHE SCHEITERN. ES GIBT KEINEN ABSTURZ ABER DER TOAST WIRD NICHT ANGEZEIGT. Im Debugmodus kann ich nicht erkennen was sich im Context befindet. 
    
    public class TabTwo extends Fragment {
        Context ctx;
    
        @Override
        public void onActivityCreated(Bundle savedInstanceState) {
            super.onActivityCreated(savedInstanceState);
    
            Button button = (Button) getView().findViewById(R.id.button1);
            // ctx = getView().getContext();
            // ctx = getActivity().getApplicationContext()
            button.setOnClickListener(new OnClickListener() {
    
                public void onClick(View arg0) {
                    Toast.makeText(ctx, "aaa", Toast.LENGTH_LONG);
                }
            });
        }
    
        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                Bundle savedInstanceState) {
            View view = inflater.inflate(R.layout.tabtwo, container, false);
            // ctx = view.getContext()
            return view;
        }
    }
    


    Der ursprüngliche Beitrag von 15:33 Uhr wurde um 15:33 Uhr ergänzt:

    ups. aus versehen ein Doppelpost. ich habe den anderen thread als erledigt markiert. er kann geschlossen werden.
     
  2. JanF, 29.07.2012 #2
    JanF

    JanF Android-Experte

    Beiträge:
    594
    Erhaltene Danke:
    79
    Registriert seit:
    31.03.2011
    Ohne show() wird Dein Toast nicht angezeigt, entweder hast Du das vergessen oder es fehlt hier noch die relevante Stelle im Code.
     
    Flixius bedankt sich.
  3. Flixius, 29.07.2012 #3
    Flixius

    Flixius Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    132
    Erhaltene Danke:
    4
    Registriert seit:
    24.10.2010
    Oh Gott, Jan!!! Ich habe ungelogen drei Stunden versucht das Problem zu lösen, den vermeintlichen Fehler lokalisiert, den Code ausgelagert und gesucht ohne Ende. Es ist ja nicht so als wäre das meine erste App.. Wie dämlich der Fehler doch war. Vielen, vielen Dank!

    Gut, wenn wir schon mal dabei sind: Speilt es eine Rolle wie ich den Context setze, oder ist es egal? getApplicationContext sollte man wohl nicht mehr nutzen, aber sonst sielt es doch eine Rolle ob ich es im onCreateView oder im onActivityCreated mache, oder?
     

Diese Seite empfehlen