如何在工具栏上的后退箭头上显示和设置点击事件?

时间:2016-03-05 05:00:27

标签: java android android-actionbar android-toolbar android-menu

Back button on toolbar

如何在Android工具栏中设置后退箭头并应用点击监听器?

7 个答案:

答案 0 :(得分:59)

首先制作一个sides = Integer.parseInt(b.getText().toString());

toolbar.xml

然后像<?xml version="1.0" encoding="utf-8"?> <android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" xmlns:local="http://schemas.android.com/apk/res-auto" android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="wrap_content" android:minHeight="?attr/actionBarSize" android:background="@color/colorPrimary" local:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" local:popupTheme="@style/ThemeOverlay.AppCompat.Light" /> 这样包含它:

activity_main.xml

然后在你的<LinearLayout android:id="@+id/container_toolbar" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <include android:id="@+id/toolbar" layout="@layout/toolbar" /> </LinearLayout> 文件中输入以下代码:

MainActivity.java

要在背面添加侦听器,请使用以下方法:

mToolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(mToolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDisplayShowHomeEnabled(true);
getSupportActionBar().setTitle("MyTitle");

答案 1 :(得分:21)

Toolbar mToolbar= (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(mToolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);    
mToolbar.setNavigationOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        // perform whatever you want on back arrow click 
    }
});

//使用lamda表达式

toolbar.setNavigationOnClickListener(view -> onBackPressed());

答案 2 :(得分:12)

如果您使用

使用Android的默认后退按钮
getSupportActionBar().setDisplayHomeAsUpEnabled(true);

然后覆盖onOptionsItemSelected,如

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case android.R.id.home:
            //do whatever
            return true;
        default:
           return super.onOptionsItemSelected(item);
    }
}

答案 3 :(得分:5)

如果你想知道点击家的时间是AppCompatActivity,你应该这样试试: 使用此代码:

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDisplayShowHomeEnabled(true);

像往常一样在android.R.id.home上监听点击事件:

@Override
public boolean onOptionsItemSelected(MenuItem menuItem) {
    if (menuItem.getItemId() == android.R.id.home) {
         Intent intent = new Intent(CurrentActivity.this, MainActivity.class);
         startActivity(intent);
         finish();
    }
    return super.onOptionsItemSelected(menuItem);
}

答案 4 :(得分:3)

此处完成示例 http://www.freakyjolly.com/how-to-add-back-arrow-in-android-activity/

使用 getSupportActionBar()要在其上显示后退图标的活动

OtherActivity.class

public class OtherActivity extends AppCompatActivity {

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


    ActionBar actionBar = getSupportActionBar();
    if (actionBar != null) {
        actionBar.setDisplayHomeAsUpEnabled(true);
    }
}

public boolean onOptionsItemSelected(MenuItem item){
    switch (item.getItemId()) {
        case android.R.id.home:
            finish();
            return true;
    }
    return super.onOptionsItemSelected(item);
}

public boolean onCreateOptionsMenu(Menu menu) {
    return true;
}

}

这将添加一个事件监听

答案 5 :(得分:3)

非常简单的代码。在onCreateView()的活动方法中添加

显示图标

        Toolbar toolbar = findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
        getSupportActionBar().setDisplayShowTitleEnabled(false);
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);

并添加点击侦听器

 toolbar.setNavigationOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
               // Put your click logic here
            }
        });

答案 6 :(得分:1)

添加此

 Toolbar toolbar = (Toolbar) findViewById(R.id.my_awesome_toolbar);
 setSupportActionBar(toolbar);
 getSupportActionBar().setDisplayHomeAsUpEnabled(true);
 getSupportActionBar().setDisplayShowHomeEnabled(true);

并在onOptionsItemSelected添加此

 @Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case android.R.id.home:
            finish();
            return true;
        default:
            return super.onOptionsItemSelected(item);
    }
}

检查

Display Back Arrow on Toolbar Android

http://developer.android.com/intl/es/training/implementing-navigation/ancestral.html