反应单击...-按钮

时间:2015-08-06 12:37:05

标签: java android android-actionbar

默认情况下,Android Button的右上角有一个... Button(又名菜单溢出ActionBar)。 这个Button打开选项菜单溢出,用户可以从中选择不同的项目。

是否可以直接对... Button上的印刷机作出反应?

我想要实现的是没有菜单弹出。相反,我想要的行为是打开一个新的Activity。就像设置活动一样。

2 个答案:

答案 0 :(得分:0)

我认为这就是你的想法:

<强> EDIT2:

还有一件事需要改变:

res-> menu-> your_menu_xml

<item
        android:id="@+id/action_edit_pass"
        android:orderInCategory="100"

<强>机器人:showAsAction = “总是”

        android:title="@string/action_edit_pass"/>

这会将“...”变为你在其中写下的值。

答案 1 :(得分:0)

这样做的一种方法是使用Toolbar代替默认ActionBar。这样,您就可以在Button的右侧简单地添加溢出ImageButtonToolbar(...),您只需使用{{1 }}

一个例子:

首先,声明你的onClickListener() xml。

<强> toolbar.xml

Toolbar

稍后,通过在<?xml version="1.0" encoding="utf-8"?> <android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="wrap_content" android:minHeight="?attr/actionBarSize" android:background="ANY_HEX_COLOR" android:elevation="4dp"> <ImageButton android:layout_width="wrap_content" android:layout_height="60dp" android:layout_gravity="end" style="@android:style/Widget.Holo.Button.Borderless" android:paddingBottom="10dp" android:paddingTop="10dp" android:id="@+id/bt_overflow" android:src="@android:drawable/ic_menu_more" /> </android.support.v7.widget.Toolbar> 上设置ActionBar主题来隐藏默认NoActionBar。类似的东西:

<强> style.xml

style.xml

现在,在<resources> <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> <!-- ... --> </style> </resources> xml文件中添加Toolbar

<强> my_activity.xml

Activity

然后,在<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="fill_parent" android:layout_height="fill_parent" android:id="@+id/rl_root" tools:context="com.testapp.ToolBarActivity"> <include android:id="@+id/tool_bar" layout="@layout/toolbar" /> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_below="@+id/tool_bar" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:paddingBottom="@dimen/activity_vertical_margin" tools:context="com.testapp.ToolBarActivity"> <TextView android:text="@string/hello_world" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </RelativeLayout> </RelativeLayout> 上,让它继承自Activity。并设置你的听众。

<强> MyActivity.java

ActionBarActivity

P.S。:不要忘记在gradle文件中添加支持库。

public class ToolBarActivity extends ActionBarActivity {

    private Toolbar toolbar;

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

        toolbar = (Toolbar) findViewById(R.id.tool_bar);

        ImageButton ib = (ImageButton) findViewById(R.id.bt_overflow);

        ib.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                startActivity();
            }
        });

        toolbar.setTitle("Test");
    }

    private void startActivity() {
        Intent it = new Intent(this,OtherActivity.class);

        startActivity(it);
    }
}

如果您希望dependencies { compile 'com.android.support:appcompat-v7:22.2.0' } 的行为与普通Toolbar相同,只需将此行添加到ActionBar

onCreate()