In the Activity more than one menu can not be done. I can offer you a slightly different option.
Create two buttons in ActionBar. I1.xml file
<menu 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" tools:context="com.example.example.I1" > <item android:id="@+id/action_menu1" android:icon="@drawable/ic_launcher" android:text="@string/action_menu1" app:showAsAction="always" /> <item android:id="@+id/action_menu2" android:icon="@drawable/ic_launcher" android:text="@string/action_menu2" app:showAsAction="always" /> </menu>
This is how it will look like in the end:

These buttons will act as a menu button. Here is the Activity code. I1.java file
package com.example.example; import android.app.AlertDialog; import android.content.DialogInterface; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.Menu; import android.view.MenuItem; import android.widget.Toast; public class I1 extends AppCompatActivity { private String[] i1 = new String[]{"ΠΠ΅ΡΠ²ΡΠΉ ΠΏΡΠ½ΠΊΡ", "ΠΡΠΎΡΠΎΠΉ ΠΏΡΠ½ΠΊΡ", "Π’ΡΠ΅ΡΠΈΠΉ ΠΏΡΠ½ΠΊΡ"}; private String[] i2 = new String[]{"ΠΡΠ½ΠΊΡ Π", "ΠΡΠ½ΠΊΡ Π"}; @Override protected void onCreate(Bundle i1) { super.onCreate(i1); setContentView(R.layout.layout_i1); return; } @Override public boolean onCreateOptionsMenu(Menu i1) { getMenuInflater().inflate(R.menu.i1, i1); return true; } @Override public boolean onOptionsItemSelected(MenuItem i1) { AlertDialog.Builder i2 = new AlertDialog.Builder(this); i2.setCancelable(true); switch (i1.getItemId()) { case R.id.action_menu1: i2.setIcon(R.drawable.ic_launcher); i2.setTitle(getString(R.string.action_menu1)); i2.setItems(this.i1, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface i1, int i2) { i1.cancel(); Toast.makeText(I1.this, "ΠΡΠ±ΡΠ°Π½ ΠΏΡΠ½ΠΊΡ:" + "\n" + I1.this.i1[i2], Toast.LENGTH_LONG).show(); return; } }); break; case R.id.action_menu2: i2.setIcon(R.drawable.ic_launcher); i2.setTitle(getString(R.string.action_menu2)); i2.setItems(this.i2, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface i1, int i2) { i1.cancel(); Toast.makeText(I1.this, "ΠΡΠ±ΡΠ°Π½ ΠΏΡΠ½ΠΊΡ:" + "\n" + I1.this.i2[i2], Toast.LENGTH_LONG).show(); return; } }); break; } i2.create().show(); return super.onOptionsItemSelected(i1); } }
Clicking on them opens an AlertDialog sheet with items. The user simply selects the item he needs.


In order to make a round floating button at the bottom of the Activity, as in the picture

you need to create a new class called FloatingActionButton , paste this code into it:
package com.example.example; import android.animation.AnimatorSet; import android.animation.ObjectAnimator; import android.app.Activity; import android.content.Context; import android.graphics.Bitmap; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; import android.view.Gravity; import android.view.MotionEvent; import android.view.View; import android.view.ViewGroup; import android.view.animation.AccelerateInterpolator; import android.view.animation.OvershootInterpolator; import android.widget.FrameLayout; public class FloatingActionButton extends View { final static OvershootInterpolator overshootInterpolator = new OvershootInterpolator(); final static AccelerateInterpolator accelerateInterpolator = new AccelerateInterpolator(); Context context; Paint mButtonPaint; Paint mDrawablePaint; Bitmap mBitmap; boolean mHidden = false; public FloatingActionButton(Context context) { super(context); this.context = context; init(Color.WHITE); } public void setFloatingActionButtonColor(int FloatingActionButtonColor) { init(FloatingActionButtonColor); } public void setFloatingActionButtonDrawable(Drawable FloatingActionButtonDrawable) { mBitmap = ((BitmapDrawable) FloatingActionButtonDrawable).getBitmap(); invalidate(); } public void init(int FloatingActionButtonColor) { setWillNotDraw(false); setLayerType(View.LAYER_TYPE_SOFTWARE, null); mButtonPaint = new Paint(Paint.ANTI_ALIAS_FLAG); mButtonPaint.setColor(FloatingActionButtonColor); mButtonPaint.setStyle(Paint.Style.FILL); mButtonPaint.setShadowLayer(10.0f, 0.0f, 3.5f, Color.argb(100, 0, 0, 0)); mDrawablePaint = new Paint(Paint.ANTI_ALIAS_FLAG); invalidate(); } @Override protected void onDraw(Canvas canvas) { setClickable(true); canvas.drawCircle(getWidth() / 2, getHeight() / 2, (float) (getWidth() / 2.6), mButtonPaint); canvas.drawBitmap(mBitmap, (getWidth() - mBitmap.getWidth()) / 2, (getHeight() - mBitmap.getHeight()) / 2, mDrawablePaint); } @Override public boolean onTouchEvent(MotionEvent event) { if (event.getAction() == MotionEvent.ACTION_UP) { setAlpha(1.0f); } else if (event.getAction() == MotionEvent.ACTION_DOWN) { setAlpha(0.6f); } return super.onTouchEvent(event); } public void hideFloatingActionButton() { if (!mHidden) { ObjectAnimator scaleX = ObjectAnimator.ofFloat(this, "scaleX", 1, 0); ObjectAnimator scaleY = ObjectAnimator.ofFloat(this, "scaleY", 1, 0); AnimatorSet animSetXY = new AnimatorSet(); animSetXY.playTogether(scaleX, scaleY); animSetXY.setInterpolator(accelerateInterpolator); animSetXY.setDuration(100); animSetXY.start(); mHidden = true; } } public void showFloatingActionButton() { if (mHidden) { ObjectAnimator scaleX = ObjectAnimator.ofFloat(this, "scaleX", 0, 1); ObjectAnimator scaleY = ObjectAnimator.ofFloat(this, "scaleY", 0, 1); AnimatorSet animSetXY = new AnimatorSet(); animSetXY.playTogether(scaleX, scaleY); animSetXY.setInterpolator(overshootInterpolator); animSetXY.setDuration(200); animSetXY.start(); mHidden = false; } } public boolean isHidden() { return mHidden; } static public class Builder { private FrameLayout.LayoutParams params; private final Activity activity; int gravity = Gravity.BOTTOM | Gravity.RIGHT; // default bottom right Drawable drawable; int color = Color.WHITE; int size = 0; float scale = 0; public Builder(Activity context) { scale = context.getResources().getDisplayMetrics().density; size = convertToPixels(72, scale); // default size is 72dp by 72dp params = new FrameLayout.LayoutParams(size, size); params.gravity = gravity; this.activity = context; } /** * Sets the gravity for the FAB */ public Builder withGravity(int gravity) { this.gravity = gravity; return this; } /** * Sets the margins for the FAB in dp */ public Builder withMargins(int left, int top, int right, int bottom) { params.setMargins( convertToPixels(left, scale), convertToPixels(top, scale), convertToPixels(right, scale), convertToPixels(bottom, scale)); return this; } /** * Sets the FAB drawable */ public Builder withDrawable(final Drawable drawable) { this.drawable = drawable; return this; } /** * Sets the FAB color */ public Builder withButtonColor(final int color) { this.color = color; return this; } /** * Sets the FAB size in dp */ public Builder withButtonSize(int size) { size = convertToPixels(size, scale); params = new FrameLayout.LayoutParams(size, size); return this; } public FloatingActionButton create() { final FloatingActionButton button = new FloatingActionButton(activity); button.setFloatingActionButtonColor(this.color); button.setFloatingActionButtonDrawable(this.drawable); params.gravity = this.gravity; ViewGroup root = (ViewGroup) activity.findViewById(android.R.id.content); root.addView(button, params); return button; } // The calculation (value * scale + 0.5f) is a widely used to convert to dps to pixel units // based on density scale // see developer.android.com (Supporting Multiple Screen Sizes) private int convertToPixels(int dp, float scale) { return (int) (dp * scale + 0.5f) ; } } }
and then insert this code into the onCreate() method of your Activity:
FloatingActionButton i2 = new FloatingActionButton.Builder(this) .withDrawable(getResources().getDrawable(R.drawable.ic_action_add)) // ΠΊΠ°ΡΡΠΈΠ½ΠΊΠ° ΡΠ²ΠΎΠ΅ΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ .withButtonColor(Color.RED) // ΠΊΡΠ°ΡΠ½ΡΠΉ ΡΠ²Π΅Ρ .withGravity(Gravity.BOTTOM | Gravity.RIGHT) // ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠΏΡΠ°Π²Π° ΡΠ½ΠΈΠ·Ρ .withMargins(0, 0, 16, 16) // Π½Π΅ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΡΡΡΡΠΏ .create();
This is one of the best and convenient options, so, unfortunately, there is so much code.
To make the button that you circled in your question on the last screenshot with a purple frame, you need to add the following code in the XML Layout of your Activity:
<LinearLayout android:id="@+id/i1_LinearLayout_myButton" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <RelativeLayout android:layout_width="wrap_content" android:layout_height="wrap_content" > <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/ΠΌΠΎΡ_Π±ΠΎΠ»ΡΡΠ°Ρ_ΠΊΠ°ΡΡΠΈΠ½ΠΊΠ°" /> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/ΠΌΠΎΡ_ΠΌΠ°Π»Π΅Π½ΡΠΊΠ°Ρ_ΠΊΠ°ΡΡΠΈΠ½ΠΊΠ°" android:layout_alignParentBottom="true" android:layout_alignParentRight="true" /> </RelativeLayout> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="18pt" android:textColor="#000000" android:text="*1,560" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="**********" /> </LinearLayout> </LinearLayout>
and this code into the onCreate() method of your Activity:
LinearLayout i3 = (LinearLayout) findViewById(R.id.i1_LinearLayout_myButton); i3.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View i1) { startActivity(...); // ΠΈ ΡΡΡ ΠΊΠΎΠ΄ Π·Π°ΠΏΡΡΠΊΠ° Π½ΠΎΠ²ΠΎΠΉ Activity return; } });