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

Wie in einem Tab die Activity (den Content) wechseln?

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von Graustein, 11.05.2010.

  1. Graustein, 11.05.2010 #1
    Graustein

    Graustein Threadstarter Neuer Benutzer

    Beiträge:
    9
    Erhaltene Danke:
    0
    Registriert seit:
    11.05.2010
    Hallo liebe Community!
    Ich habe vor etwa 3 Wochen angefangen, für Android zu programmieren.
    Nun stehe ich vor einem Problem, auf dessen Lösung ich (auch durch stundenlanges Googlen und Forenlesen) nicht gekommen bin:

    Ich habe eine TabActivity, in der ich 4 Tabs nach folgendem Muster erstelle:

    Code:
    intent = new Intent().setClass(this, AllgInfos.class);
    spec = tabHost.newTabSpec("info").setIndicator("",
    res.getDrawable(R.drawable.ic_tab_info))
                                .setContent(intent);
    tabHost.addTab(spec);
    
    Klappt soweit alles gut, in der Activity "AllgInfos" lade ich ein neues Layout als Content des Tabs, das eine Liste beinhaltet.
    Nun will ich bei einem Klick auf einen Listeneintrag eine andere Activity als Content des aktuellen Tabs haben.
    Der Aufruf der anderen Activity innerhalb der AllgInfo:

    Code:
    Intent myIntent = new Intent (AllgInfos.this, ContentBrowsing.class);       
    myIntent.putExtra("Woher",lv.getItemAtPosition(position).toString()); 
    startActivity(myIntent);
    
    Bei dieser Art, die Activity (ContentBrowsing) aufzurufen, verschwinden die Tab-Reiter, und NUR die aufgerufene Activity ist zu sehen.
    Wie schaffe ich es nun, eine neue Activity innerhalb eines Tabs aufzurufen, und dass die Tab-Reiter sichtbar bleiben?

    Ich danke euch bereits jetzt für euer Bemühen!

    Grüße,
    Graustein
     
    Zuletzt bearbeitet: 12.05.2010
  2. Graustein, 12.05.2010 #2
    Graustein

    Graustein Threadstarter Neuer Benutzer

    Beiträge:
    9
    Erhaltene Danke:
    0
    Registriert seit:
    11.05.2010
    Hab es gelöst :)

    Es gibt im Grunde 2 Arten das zu bewerkstelligen:

    --> Anstelle von neuen Activities einfach neue Views mit this.setcontentView

    oder

    --> mit Hilfe von ActivityGroups und dem folgendem Aufruf:

    Code:
    Intent myIntent = new Intent (Quelle.this, Ziel.class);
    View view = getLocalActivityManager()
    .startActivity("ReferenceName", myIntent
    .addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP))
    .getDecorView();
    GespDaten.this.setContentView(view);
    
    Danke euch trotzdem!

    Grüße,
    Graustein
     
  3. baeckerman83, 27.06.2011 #3
    baeckerman83

    baeckerman83 Neuer Benutzer

    Beiträge:
    18
    Erhaltene Danke:
    0
    Registriert seit:
    09.02.2011
    Hallo,

    leider bekomme ich immer nach mehreren Aufrufen einen StackOverflow und weiß nicht warum. Ich habe den Weg mit den ActivityGroups genommen.
     

Diese Seite empfehlen