这些是在官方API上看到的
1.添加button按钮
1)在xml文件中指定操作栏显示的按钮
所有的操作按钮和动作溢出提供的其他项目是在一个XML定义的菜单资源。将动作添加到动作栏中,在项目中创建的一个新的XML文件 的res /menu/目录下。
Item表示在操作栏中显示的你想要显示的功能键
android:icon="@drawable/ic_action_search"
android:title="@string/action_search"
android:showAsAction="ifRoom" />
!-- Settings, should always be in the overflow -->
android:title="@string/action_settings"
android:showAsAction="never" />
如果你的项目要兼容2.1以下的版本:
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:yourapp="http://schemas.android.com/apk/res-auto" >
android:id="@+id/action_search"
android:icon="@drawable/ic_action_search"
android:title="@string/action_search"
yourapp:showAsAction="ifRoom" />
...
2)将刚才设置的功能键添加到操作栏中
若要将菜单项到动作栏中,实现 onCreateOptionsMenu()在您的活动的回调方法来刺激菜单资源到给定的菜单 对象
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu items for use in the action bar
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main_activity_actions, menu);
return super.onCreateOptionsMenu(menu);}
3)点击功能键触发功能
当用户按下操作按钮,系统会调用您的活动的onOptionsItemSelected()回调方法。在实现此方法,调用getItemId(),以确定哪些项目被按下,返回ID。
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle presses on the action bar items
switch (item.getItemId()) {
case R.id.action_search:
openSearch(); return true;
case R.id.action_settings:
openSettings(); return true;
default: return super.onOptionsItemSelected(item);
}}
4)
android:name="com.example.myfirstapp.MainActivity" ...>
...
android:name="com.example.myfirstapp.DisplayMessageActivity"
android:label="@string/title_activity_display_message"
android:parentActivityName="com.example.myfirstapp.MainActivity" >
android:name="android.support.PARENT_ACTIVITY"
android:value="com.example.myfirstapp.MainActivity"/>
启用这个按钮
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_displaymessage);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
// If your minSdkVersion is 11 or higher, instead use:
// getActionBar().setDisplayHomeAsUpEnabled(true);
}