ActionBar就是一个标题栏,以前Android3.0之前还称为标题栏,Android3.0之后取名为ActionBar
首先必须在AndroidManifest.xml中指定Application或Activity的theme是Theme.Holo或其子类,否则将无法使用ActionBar
android:theme="@android:style/Theme.Holo.Light"
<application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@android:style/Theme.Holo.Light" android:name=".intent.MyApplication">
Android对ActionBar进行了一系列的封装;
ActionBar就是标题栏:
隐藏标题栏:
package liudeli.activity; import android.app.ActionBar; import android.app.Activity; import android.os.Bundle; public class MyActionBarActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_action_bar); // ActionBar是在Activity中,所以可以直接得到 ActionBar actionBar = getActionBar(); // 隐藏ActionBar(标题栏) actionBar.hide(); } }
可以对ActionBar进行各种各样的设置,ActionBar提供了各式各样的方法:
关于Menu菜单:
早期之前的Android2.2,Android2.3 ..... 系统的手机,都是有Menu菜单键的,一般是在左边的键,就是菜单Menu键
随着Android的发展,这个菜单Menu键 慢慢的就不见了,现在很多手机都没有了这个菜单Menu键了,于是Android就设计了可以把Menu放置在ActionBar上;
AndroidManifest.xml的主题配置为 可以使用ActionBar
首先必须在AndroidManifest.xml中指定Application或Activity的theme是Theme.Holo或其子类,否则将无法使用ActionBar
android:theme="@android:style/Theme.Holo.Light"
<application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@android:style/Theme.Holo.Light" android:name=".intent.MyApplication">
Activity的代码:
package liudeli.activity; import android.app.ActionBar; import android.app.Activity; import android.os.Bundle; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import android.widget.Toast; public class MyActionBarActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // ActionBar是在Activity中,所以可以直接得到 // ActionBar actionBar = getActionBar(); // 隐藏ActionBar(标题栏) // actionBar.hide(); // actionBar. ...... } /** * 创建菜单里面的选择 * @param menu * @return */ @Override public boolean onCreateOptionsMenu(Menu menu) { super.onCreateOptionsMenu(menu); // 使用菜单加载器 MenuInflater menuInflater = getMenuInflater(); // 加载一个菜单文件 menuInflater.inflate(R.menu.menu, menu); return true; } /** * 菜单里面的选择被选择回调 * @param item * @return */ @Override public boolean onOptionsItemSelected(MenuItem item) { super.onOptionsItemSelected(item); switch (item.getItemId()) { case R.id.menu_create: Toast.makeText(this, item.getTitle()+ "-你选择了创建", Toast.LENGTH_SHORT).show(); break; case R.id.menu_delete: Toast.makeText(this, item.getTitle()+ "-你选择了删除", Toast.LENGTH_SHORT).show(); break; case R.id.menu_sub1: // 子菜单 Toast.makeText(this, item.getTitle()+ "-你选择了子菜单一", Toast.LENGTH_SHORT).show(); break; case R.id.menu_sub2: // 子菜单 Toast.makeText(this, item.getTitle()+ "-你选择了子菜单二", Toast.LENGTH_SHORT).show(); break; } return true; } }
Menu.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/menu_create" android:icon="@android:drawable/ic_menu_add" android:title="X新建"> </item> <item android:id="@+id/menu_delete" android:icon="@android:drawable/ic_menu_add" android:title="X删除"> </item> <item android:title="X子菜单"> <menu> <item android:id="@+id/menu_sub1" android:icon="@android:drawable/ic_menu_add" android:title="X子菜单1"> </item> <item android:id="@+id/menu_sub2" android:icon="@android:drawable/ic_menu_add" android:title="X子菜单2"> </item> </menu> </item> </menu>
效果:(Android模拟器是有Menu菜单键的)