如何在android studio中为初学者添加动作栏?

时间:2016-08-20 08:30:23

标签: android android-layout android-studio android-actionbar

我想构建自己的应用程序,我想为它添加一个操作栏。在我的主要布局中,我想要一个只有我的应用程序名称的操作栏。在我的其他布局/页面中,我想要我的页面名称和后面导航回到上一页的符号。任何人都可以告诉我如何做到这一点,也可以有人告诉我android中的默认操作栏它做了什么以及我该怎么做。

4 个答案:

答案 0 :(得分:10)

第1步:build.gradle(应用程序级别)

dependencies {
    compile 'com.android.support:appcompat-v7:23.3.0'
}

第2步:AndroidManifest.xml

<application
....
android:theme="@style/Theme.AppCompat.Light.DarkActionBar"/>

第3步:在您的活动中

public class main extends AppCompatActivity
{
    ....
    @Override
    protected void onCreate(Bundle savedInstanceState) {

        ...

        getSupportActionBar().setTitle("Your Activity Title"); // for set actionbar title
        getSupportActionBar().setDisplayHomeAsUpEnabled(true); // for add back arrow in action bar
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
    // TODO Auto-generated method stub
    int id = item.getItemId();
    if (id == android.R.id.home) {
        finish();
    }
    return super.onOptionsItemSelected(item);
}

答案 1 :(得分:1)

将您的布局主题更改为“Theme.DeviceDefault.Light.DarkActionBar”

在菜单文件夹下设置操作栏菜单布局

<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:id="@+id/a"
      android:icon="@drawable/a"
      android:showAsAction="always"
      android:title=""/>

<item android:id="@+id/b"
      android:icon="@drawable/b"
      android:showAsAction="always"
      android:title=""/>

<item android:id="@+id/c"
      android:icon="@drawable/c"
      android:showAsAction="always"
      android:title=""/>

<item android:id="@+id/d"
      android:icon="@drawable/d"
      android:showAsAction="always"
      android:title=""/>

<item android:id="@+id/e"
      android:icon="@drawable/e"
      android:showAsAction="always"
      android:title=""/>

然后将以下脚本写入您的活动类

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

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case R.id.a:
            //Write your code
            return true;
        case R.id.b:
            //Write your code
            return true;
        case R.id.c:
            //Write your code
            return true;
        case R.id.d:
            //Write your code
            return true;
        case R.id.e:
            //Write your code
            return true;
        default:
            return super.onOptionsItemSelected(item);
    }
}

答案 2 :(得分:0)

您可以使用

轻松获取Actionbar
ActionBar actionBar =getSupportActionBar();
        actionBar.setDisplayHomeAsUpEnabled(true);

答案 3 :(得分:0)

对于 androidx:

InlineKeyboardButton

Activity 应该扩展 AppCompatActivity