如何在图像上单击显示菜单项?

时间:2016-04-11 17:11:35

标签: android android-layout android-studio imageview menuitem

我创建了一个操作栏,右边有一个图像。我想添加一些菜单项,当用户点击它时应该显示。它就像微调器一样。

有人可以帮我解决这些步骤或代码。

Activity.xml:

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/layout1">
    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="@color/red">
        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="left"
            android:src="@drawable/pic13" />
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:text="User Profile"
            android:textSize="20sp"
            android:textColor="@android:color/white" />
        <ImageView
            android:id="@+id/selectItems"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="right"
            android:textColor="#456789"
            android:popupBackground="@color/title"
            android:background="@drawable/ic_action_overflow"/>
    </android.support.v7.widget.Toolbar>

菜单/ item.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/gamepad"
        android:title="@string/gamepad"
        android:icon="@drawable/gamepad"
        app:showAsAction="ifRoom|withText"
        />

</menu>

的活动:

 package com.example.vimal.edkul;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.View;

public class UserAccordion extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
}

@Override
    public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.actionbar, menu);
        return super.onCreateOptionsMenu(menu);
    }
}

1 个答案:

答案 0 :(得分:0)

如果我没有错,你可能会错过一些侦听用户点击按钮的ClickListener。

我从javacodegeeks

引用了这些代码

<强> AndroidToolbarExample.java

package com.javacodegeeks.androidtoolbarexample;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.widget.Toast;

public class AndroidToolbarExample extends AppCompatActivity {

Toolbar toolbar;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    initToolBar();

}

public void initToolBar() {
    toolbar = (Toolbar) findViewById(R.id.toolbar);
    toolbar.setTitle(R.string.toolbarTitle);

    setSupportActionBar(toolbar);

    toolbar.setNavigationIcon(R.drawable.ic_toolbar_arrow);
    toolbar.setNavigationOnClickListener(
            new View.OnClickListener() {
                @Override
                public void onClick(View v) {

                    ****** HERE *******
                    //implement your click stuff here
                    switch(v.getId()) {
                        case R.id.selectItems:
                          ....
                        break;

                    }

                }
            }

    );
  }
}