Eclipse Menu Item macht nicht dass was es soll ??

  • Antworten:13
  • OffenNicht stickyNicht beantwortet
  • Forum-Beiträge: 180

18.09.2014, 16:21:51 via Website

Hi leute
Ich habe mir eine selbst icon mit einem xml layout selber gemacht und es als item in dem folder menu -> menu definiert
soweit so gut dass icon wird auch schön angezeigt ohne probleme
dann wollte dass wenn man auf dieses icon clickt eine neue activity startet
und genau da ist das problem ..... ich habe alles schon wie im internet beschrieben gemacht und definiert doch wenn man darauf klick passiert -> nichts ... es wird nur angezeigt dass ich es klicke

Hier die codes ich finde den fehler nicht

MainActivity der code mit dem menu:

@Override
    public boolean onCreateOptionsMenu(Menu  menu) {     
        getMenuInflater().inflate(R.menu.menu, menu);

    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {

        switch (item.getItemId()) {
        case R.id.diamant:
            startActivity(new Intent(this, Activity2.class));
            return true;


        default:
            return super.onOptionsItemSelected(item);
        }

    }

und hier die menu xml:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >

  <item android:id="@+id/diamant"
        android:actionLayout="@layout/actionbar_badge_layout"
        android:showAsAction="always"
        android:icon="@drawable/diamond"
        android:title="Diamand"
         />
</menu>

und Die Activity 2 habe ich in der Manifest.xml auch definiert...

Wiso macht es jetzt nicht was es soll :O

MFG Lukas R.
Programmieren ist nicht nur eine Wissenschaft, sondern auch ein Lifestyle!

Antworten
  • Forum-Beiträge: 11.135

18.09.2014, 16:33:28 via Website

Benutze am besten das Log und den debugger um den Fehler zu finden.
Damit kannst du z.b. prüfen ob die Methode onOptionsItemSelected überhaupt aufgerufen wird und welche id dein menuitem worauf geclickt wurde hat.

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
  • Forum-Beiträge: 180

18.09.2014, 17:02:52 via Website

habe dass gemacht und irgendwie sehe ich nichts
wenn ich auf dass icon klicke passiert nichts in der log
was bedeutet dass onOptionsItemSelected gar nicht aufgerufen wird oder?

MFG Lukas R.
Programmieren ist nicht nur eine Wissenschaft, sondern auch ein Lifestyle!

Antworten
  • Forum-Beiträge: 11.135

18.09.2014, 17:04:53 via Website

Genau, die Frage ist nun warum.
Das gilt es herauszufinden.
Wenn du ein neues Item erstellst ohne irgendwleche zusatzeinstellungen tut es dann über das neue item?

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
  • Forum-Beiträge: 180

18.09.2014, 17:41:38 via App

wenn ich ein neues item nehme passiert das selbe

mhhhhm

hier noch ein paar infos

also Die MainActivity extends von FragmentActivity
falls dass einer Rolle spielt

und müsste man zuerst in onCreat das icon definieren?

dass komische ist wenn ich die activity über einen button aufrufe geht alles ganz normal

MFG Lukas R.
Programmieren ist nicht nur eine Wissenschaft, sondern auch ein Lifestyle!

Antworten
  • Forum-Beiträge: 11.135

18.09.2014, 17:43:00 via Website

Was meinst du mit "über den Button aufrufen"?

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
  • Forum-Beiträge: 180

18.09.2014, 18:20:15 via App

ja ich möchte ja dass eine neue activity gestartet wird wenn man im menu auf ein item klickt
dass geht ja nicht da onOptionItemClick noch aufgerufen wird

dann habe ich auf einem normalen layout einen button Gesetz und versucht über den button die activity zu starten um mögliche fehler auszuschließen falls es da funktioniert

also liegt der Fehler devinitiev entweder in der MainActivity beim onOptionItemClick handler
oder am item selbst

MFG Lukas R.
Programmieren ist nicht nur eine Wissenschaft, sondern auch ein Lifestyle!

Antworten
  • Forum-Beiträge: 180

18.09.2014, 18:49:09 via App

ja die mainactivity ist fragmentactivity
in dieser fragmentactivity sind tabs
und im menu sollte dass item sein dass ein neues intent startet

danke erstmal für den link da sind viele Sachen die ich noch nicht probiert habe

in diesem link steht wenn man menu in einem Fragment hat sollte man "return" auf false setzen

wie man bei mir sieht ist es auf true gesetzt

dass werde ich gleich mal ausprobieren
und falls es geht bescheitsagen

MFG Lukas R.
Programmieren ist nicht nur eine Wissenschaft, sondern auch ein Lifestyle!

Antworten
  • Forum-Beiträge: 180

18.09.2014, 19:06:35 via Website

hat leider nicht funktioniert
die suche geht weiter

MFG Lukas R.
Programmieren ist nicht nur eine Wissenschaft, sondern auch ein Lifestyle!

Antworten
  • Forum-Beiträge: 180

18.09.2014, 20:09:24 via Website

habe jetz mal versucht durch einen klick auf das item nur einen Toast auszugeben
nichtmal dass macht es
dass bedeutet doch dass es an dem item selbst liegen muss??

Hier menu: menu.xml

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >

  <item android:id="@+id/diamant"
        android:actionLayout="@layout/actionbar_badge_layout"
        android:showAsAction="always"
        android:icon="@drawable/diamond"
        android:title="Diamand"
         />
</menu>

und hier dass layout des items : actionbar_badge_layout:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:gravity="center"
    android:layout_gravity="center"
    android:clickable="true"
    style="@android:style/Widget.ActionButton">

    <ImageView
        android:id="@+id/hotlist_bell"
        android:src="@drawable/diamond"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:layout_margin="0dp"
        android:contentDescription="bell"
        />

    <TextView
        android:id="@+id/hotlist_hot"
        android:layout_width="wrap_content"
        android:minWidth="17sp"
        android:textSize="12sp"
        android:textColor="#ffffffff"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="@null"
        android:layout_alignTop="@id/hotlist_bell"
        android:layout_alignRight="@id/hotlist_bell"
        android:layout_marginRight="0dp"
        android:layout_marginTop="3dp"
        android:paddingBottom="1dp"
        android:paddingRight="4dp"
        android:paddingLeft="4dp"
        android:background="@drawable/rounded_square"/>
</RelativeLayout>

MFG Lukas R.
Programmieren ist nicht nur eine Wissenschaft, sondern auch ein Lifestyle!

Antworten
  • Forum-Beiträge: 11.135

18.09.2014, 20:19:50 via App

Ne jetzt mach es nicht so kompliziert. Ich denke es leigt an der Benutzung von Fargments. Um das herauszufinden neue Activity erstellen testitem code da rein Activity starten und testen. Wenn es da geht liegt es zu 100% an der Fragment technik.

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
  • Forum-Beiträge: 180

18.09.2014, 20:44:32 via Website

ja hat funktioniert
also liegt es an der fragment technik
wie könnte man dass jetzt lösen ?

in google finde ich kein tutorial oder ähnliches wo drinen steht wie man das optionitemclick in einem FragmentActvity definiert?

MFG Lukas R.
Programmieren ist nicht nur eine Wissenschaft, sondern auch ein Lifestyle!

Antworten
Empfohlene Artikel