View finden

  • Schönes Wochenende erstmal,


    hätte mal ne frage.


    Übe mich gerade in Adroid rein.


    Wollte innerhalb der Methode onPrepareOptionsMenu (Menu menu)


    das menu ändern (andere menu xml ), dies aber abhängig vom angezeigten layout file.


    - Frange, wie finde ich das angezeigte View heraus ?
    getCurrentFocus() liefert null (denke da das Menu dann den Focus hat welches ja kein View Object ist)




    Vielen vielan Dank schon mal

  • leider gibts noch keine Antwort, wie man sieht.
    evtl. hab ich die Frage auch doof formuliert.


    suche quasi das gegenstück zu
    setContentView(R.layout.main);


    will also abfragen welche layout.xml gerade verwendet wird.


    Ist das überhaupt sinnvoll, oder sollte man für jede Oberflächer(incl. eigenem Menü) ne eigen Activity Klasse machen ?


    Danke

  • also da du pro activity setContentView nur einmal aufrufen kannst (alles andere gibt ne Exception), macht das relativ wenig Sinn. tatsächlich gibt so die Faustregel ein Screen = eine Activity in Android.

  • Danke dir für die Antwort,


    kann aber das mit der Exception nicht nachvollziehen.


    public void onCreate(Bundle savedInstanceState)
    {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.mainv);
    }


    public boolean onOptionsItemSelected (MenuItem item)
    {
    setContentView(R.layout.settings);
    }



    funktioniert bei mir.


    nur das ich nicht abfragen kann welches layout gerade genutzt wird.

  • Hmm, lustig...hängt wahrscheinlich an der Android-Version. Naja, trotzdem gilt diese Regel. Wenn dus dir aber so einfach machen magst, dann kannst du dir auch die id von dem Layout einfach zwischenspeichern. "R.layout.mainv" ist ja nur ne int (oder long?) und kann genau so benutzt werden.

  • Merkwürdig merkwürdig,


    hatte das Schon mal versucht, aber es ging nicht.
    jetzt nochmal und es geht.
    Muss aber dem layout erst ne extra Id zuweisen.


    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/testid"
    ....


    View v = findViewById(R.id.testId); // nicht R.layout.mainv


    dann geht auch v.isShown (aber erst nachdem die onCreate Methode fertig ist)


    werde dennoch ne extra Activity machen. wollte es nur verstehen !


    Danke für die tipps.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!