it-swarm.com.de

Wie man in Android mehrere Symbole auf der Aktionsleiste hinzufügt?

Ich möchte 2 oder 3 Symbole in der Aktionsleiste der Android-App hinzufügen. Ich habe bereits die leere Aktivität übernommen und die Symbolleiste hinzugefügt. Ich habe auch das Icon auf der linken Seite gesetzt. Jetzt möchte ich noch zwei Icons hinzufügen. In meiner Projektverzeichnisstruktur befindet sich jedoch kein Menüordner. Also sagt mir jemand, wie ich das alles mit den richtigen Richtlinien machen kann? Mein Code ist hier:

Meine Aktivitätsdatei

    public class ActionBarActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_action_bar);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
        getSupportActionBar().setIcon(R.drawable.left_nav);
        getSupportActionBar().setTitle("");
        getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
    }
}

meine .xml Datei

    <?xml version="1.0" encoding="utf-8"?>
<Android.support.design.widget.CoordinatorLayout
    xmlns:Android="http://schemas.Android.com/apk/res/Android"
    xmlns:app="http://schemas.Android.com/apk/res-auto"
    xmlns:tools="http://schemas.Android.com/tools"
    Android:layout_width="match_parent"
    Android:layout_height="match_parent"
    Android:background="#ffffff"
    Android:fitsSystemWindows="true"
    tools:context="firstapp.vaibhav.com.firstapp.ActionBarActivity">

    <Android.support.design.widget.AppBarLayout
        Android:layout_width="match_parent"
        Android:layout_height="wrap_content"
        Android:theme="@style/AppTheme.AppBarOverlay">

        <Android.support.v7.widget.Toolbar
            Android:id="@+id/toolbar"
            Android:layout_width="match_parent"
            Android:layout_height="?attr/actionBarSize"
            Android:background="?attr/colorPrimary"
            app:popupTheme="@style/AppTheme.PopupOverlay" />

    </Android.support.design.widget.AppBarLayout>

</Android.support.design.widget.CoordinatorLayout>

Screenshot meiner Projektverzeichnisstruktur

5
sid

1. Erstellen Sie einen menu-Ordner in Ihrem vorhandenen Ressourcen res-Ordner. (Bsp. .../res/menu)

2. Erstellt eine main.xml-Datei im menu-Ordner. (Bsp. .../res/menu/main.xml

main.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">
    <item
        Android:id="@+id/action_item_one"
        Android:title="Camera"
        Android:icon="@drawable/ic_menu_camera"
        app:showAsAction="always" />

    <item
        Android:id="@+id/action_item_two"
        Android:title="Send"
        Android:icon="@drawable/ic_menu_send"
        app:showAsAction="always" />
</menu>

3. Überschreiben Sie in Ihrer Aktivität onCreateOptionsMenu() und onOptionsItemSelected(), um mit Optionsmenüs zu arbeiten.

ActionBarActivity.Java

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    int id = item.getItemId();

    //noinspection SimplifiableIfStatement
    if (id == R.id.action_camera) {

        // Do something
        return true;
    }
    if (id == R.id.action_send) {

        // Do something
        return true;
    }

    return super.onOptionsItemSelected(item);
}

AUSGABE

 enter image description here

Hoffe das hilft ~

13
Ferdous Ahamed

erstellen Sie menu.xml mit einem solchen Element

<?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">
   <!-- <item
        Android:id="@+id/action_settings"
        Android:orderInCategory="100"
        Android:title="@string/action_settings"
        app:showAsAction="never" />-->
    <item
        Android:id="@+id/action_refresh"
        Android:orderInCategory="100"
        app:showAsAction="always"
        Android:icon="@drawable/ic_action_autorenew"
        Android:title="Search"/>
   <item
       Android:id="@+id/action_search"
       Android:orderInCategory="100"
       app:showAsAction="always"
       Android:icon="@drawable/ic_action_search"
       Android:title="Search"/>

</menu>

und verwenden Sie es in Aktivität

@Override
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
      //  MenuInflater inflater1 = getActivity().getMenuInflater();
        inflater.inflate(R.menu.cartmenu, menu);
        return ;
    }
1

Sie können die Option showAsAction verwenden, die sich im Element in der Menüressourcendatei befindet.

1) Wenn Sie ein Popup-Menü hinzufügen möchten, schreiben Sie app:showAsAction="never"

2) Wenn Sie Symbole als Aktion hinzufügen möchten (mehrere Symbole in der Aktionsleiste), schreiben Sie app:showAsAction="always"

0
Nevil Ghelani

in deiner res/menu/menu_main.xml:

hinzufügen

    <?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">
    <item Android:id="@+id/icon_id"
        Android:visible="true"
        Android:title="@string/icon_name"
        Android:icon="@drawable/your_image"
        app:showAsAction="always">
    </item>
</menu>

in deiner Tätigkeit:

 @Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.menu_main, menu);
    // return true so that the menu pop up is opened
    return true; 
}

Um auf Ihren Menüpunkt in activity zuzugreifen, fügen Sie Folgendes hinzu:

 @Override
public boolean onOptionsItemSelected(MenuItem item) {
    int id = item.getItemId();
    if (id == R.id.your_item_id) {
        // your code
        return true;
    }
    return super.onOptionsItemSelected(item);
}
0
rafsanahmad007