在Action Bar上添加操作按钮

来源:互联网 发布:mac钥匙串密码忘记 编辑:程序博客网 时间:2024/05/21 16:57

这些是在官方API上看到的

1.添加button按钮


 1)在xml文件中指定操作栏显示的按钮

所有的操作按钮和动作溢出提供的其他项目是在一个XML定义的菜单资源。将动作添加到动作栏中,在项目中创建的一个新的XML文件 res /menu/目录下。

Item表示在操作栏中显示的你想要显示的功能键

<menu xmlns:android="http://schemas.android.com/apk/res/android" >   

 <!-- Search, should appear as action button -->    

<item android:id="@+id/action_search"        

     android:icon="@drawable/ic_action_search"            

     android:title="@string/action_search"         

     android:showAsAction="ifRoom" />    

!-- Settings, should always be in the overflow -->    

<item android:id="@+id/action_settings"          

     android:title="@string/action_settings"        

     android:showAsAction="never" />

</menu>

如果你的项目要兼容2.1以下的版本:

<menu 

xmlns:android="http://schemas.android.com/apk/res/android"      xmlns:yourapp="http://schemas.android.com/apk/res-auto" >   

 <!-- Search, should appear as action button -->    

<item 

        android:id="@+id/action_search"          

        android:icon="@drawable/ic_action_search"         

        android:title="@string/action_search"       

        yourapp:showAsAction="ifRoom"  />
    ...</menu>

 

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

<application ... >


    <!-- The main/home activity (it has no parent activity) -->   

<activity       

    android:name="com.example.myfirstapp.MainActivity" ...>
        ...    </activity>    

<!-- A child of the main activity -->    

<activity       

 android:name="com.example.myfirstapp.DisplayMessageActivity"      

     android:label="@string/title_activity_display_message"     

     android:parentActivityName="com.example.myfirstapp.MainActivity" >        

   <!-- Parent activity meta-data to support 4.0 and lower -->       

<meta-data            

android:name="android.support.PARENT_ACTIVITY"     

android:value="com.example.myfirstapp.MainActivity"/>    

</activity>

</application>

 

 

启用这个按钮

@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);

}

0 0
原创粉丝点击