2016-10-27 7 views
0

Ich versuche, zum ersten Mal eine Aktionsleiste in meiner Android App einzurichten. Ich bin buchstäblich Schritt für Schritt die Anweisung folgt von: https://developer.android.com/training/appbar/actions.html aber es funktioniert nicht ... Ich bekomme diese Fehlermeldung, dass, wenn ich es auf Google suche, gibt es mir völlig andere Fälle als meins ... (ich kann nicht den ganzen Code eingefügt werden, da zu viel, so dass ich einfügen nur die einen in Bezug auf die Aktionsleiste) enter image description hereHinzufügen von Aktion zu Aktionsleiste

hier, um das Manifest:

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

    <application 
     android:allowBackup="true" 
     android:icon="@mipmap/ic_launcher" 
     android:label="@string/app_name" 
     android:supportsRtl="true" 
     android:theme="@style/Theme.AppCompat.Light.NoActionBar"> 
     <activity android:name=".MainActivity"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
    </application> 

</manifest> 

hier die Aktion bar.xml:

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

    <!-- "Mark Favorite", should appear as action button if possible --> 
    <item 
     android:id="@+id/action_favorite" 
     android:icon="@drawable/ic_favorite_black_48dp" 
     android:title="@string/action_favorite" 
     app:showAsAction="ifRoom"/> 

    <!-- Settings, should always be in the overflow --> 
    <item android:id="@+id/action_settings" 
     android:title="@string/action_settings" 
     app:showAsAction="never"/> 

</menu> 

Die main_activity.xml:

<?xml version="1.0" encoding="utf-8"?> 
<!--Layout che prende tutto lo schermo--> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/activity_main" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" 
    tools:context="com.example.android.projectcalculator.MainActivity"> 

    <!--ActionBar in alto--> 
    <android.support.v7.widget.Toolbar 
     android:id="@+id/my_toolbar" 
     android:layout_width="match_parent" 
     android:layout_height="?attr/actionBarSize" 
     android:background="#ff0000" 
     android:elevation="4dp" 
     android:theme="@style/ThemeOverlay.AppCompat.ActionBar" 
     app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/> 
</LinearLayout> 

Die MainActivity.java:

package com.example.android.projectcalculator; 

import android.provider.ContactsContract; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.support.v7.widget.Toolbar; 
import android.util.Log; 
import android.view.View; 
import android.widget.TextView; 

import static android.R.attr.breadCrumbShortTitle; 
import static android.R.attr.data; 
import static android.R.attr.onClick; 
import static android.webkit.ConsoleMessage.MessageLevel.LOG; 

public class MainActivity extends AppCompatActivity { 

    //varibile per stampare nelle text view, e per fare i calcoli 
    private static String equation; 
    private static int neutralElement; 
    private static boolean flagNeutralElementBegin; 
    private static boolean flagNeutralElementEnd; 
    private static boolean flagIsNuberWithDotActive; 
    private static int openBracket; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     Toolbar myToolbar = (Toolbar) findViewById(R.id.my_toolbar); 
     setSupportActionBar(myToolbar); 
    } 

Antwort

1

In MainActivity.java hinzufügen:

public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.action_bar,menu); 
    return true; 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    // Handle item selection 
    switch (item.getItemId()) { 
     case R.id.action_favorite: 
      break; 
     case R.id.action_settings: 
      break; 
     default: 
      return super.onOptionsItemSelected(item); 
    } 
    return true; 
} 

In strings.xml add:

<string name="action_settings">Settings</string> 
<string name="action_favorite">Favorite</string> 
+0

Das hat super funktioniert, danke! –

0

implementieren diese 2 Methoden

public boolean onCreateOptionsMenu(Menu menu) { 
    this.menu = menu; 
    getMenuInflater().inflate(R.menu.menu,menu); 
    return true; 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    // Handle item selection 
    switch (item.getItemId()) { 
     case R.id.action_favorite: 
      break; 
     case R.id.action_settings: 
      break; 
     default: 
      return super.onOptionsItemSelected(item); 
    } 
    return true; 
} 
+0

Wenn ich Ihren Code-Snippet implementieren ich werde, in der ersten Klasse, der Fehler: kann nicht Symbol ‚Menü‘ –

+0

lösen Und ich habe immer noch die gleichen Fehler .. –

+0

menu ist der XML-Name des Menüs, das Sie erstellt haben, um alle Einträge zu haben –

Verwandte Themen