如何在Android上的ActionBar中为up按钮添加监听器?

时间:2016-05-23 22:02:20

标签: java android android-actionbar

我以这种方式在我的android活动的操作栏中添加了向上按钮:

的活动:

  

getSupportActionBar()setDisplayHomeAsUpEnabled(真);

清单:

  

机器人:parentActivityName = “MenuActivity” >

它工作正常,但现在我想在活动之间添加过渡效果。 这种转变很有效:

  

Intent intent = new Intent(getApplicationContext(),MenuActivity.class);           startActivity(意向);           overridePendingTransition(R.anim.slide_in_left,R.anim.slide_out_right);

但我应该把这个过渡代码放在哪里?我没有任何关于操作栏中后退按钮的监听器。

感谢建议人员

3 个答案:

答案 0 :(得分:4)

在命令setSupportActionBar(toolbar);

之后添加它
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            // your code
        }
    });

答案 1 :(得分:4)

操作栏中的向上按钮被视为ID为android.R.id.home的菜单项,您可以在the docs中阅读。在那里你可以发现你可以使用以下代码处理它的点击:

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
    case android.R.id.home:
        // Respond to the action bar's Up/Home button
        return false;
    }
    return super.onOptionsItemSelected(item);
}

答案 2 :(得分:0)

如果操作栏中有后退按钮,则必须在menu.xml文件中定义。所以我们必须在java文件中添加该按钮的监听器。

这里是menu.xml的样子:

<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.sknandroidapps.skn.ptternlock.LockScreen">
<item
    android:id="@+id/action_settings"
    android:orderInCategory="100"
    android:title="@string/action_settings"
    app:showAsAction="never" />

所以,如果您想将监听器添加到action_settings按钮,那么您必须这样做:

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    int id = item.getItemId();

    noinspection SimplifiableIfStatement
       if (id == R.id.action_settings) {
         //here you have to put the transiction code.
         return true;
       }

    return super.onOptionsItemSelected(item);
}

将此应用于您的代码,并告诉我它是否有效。