ActionBar总结1_实现menu,Navigate up

例子见资源(不需要资源积分)

主要内容:

  1. 使用action bar的menu

  2. Navigating Up with the App Icon

使用action bar的menu

效果: 
enter image description here


实现:

  • 在menu资源中创建一个xml,添加action buttons到action bar中

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
     >
    <item
        android:id="@+id/search"
        android:title="@string/search"
        android:icon="@drawable/ic_action_search"
        android:showAsAction="ifRoom"/>
    <item
        android:id="@+id/share"
        android:icon="@drawable/ic_action_share"
        android:title="@string/share"
        android:showAsAction="never"/>
</menu>
  • Activity的onCreateOptionsMenu()使用创建的xml

public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.action_button, menu);
        return super.onCreateOptionsMenu(menu);
 }
  • 响应action buttons

 public boolean onOptionsItemSelected(MenuItem item) {
        // TODO Auto-generated method stub
        switch (item.getItemId()) {
        case R.id.search:
            /*点击 seace action button时做相应处理的代码*/
            return true;
        case R.id.share:
            /*点击 share action button时做相应处理的代码*/
            return true;
        default:            
            return onOptionsItemSelected(item);
        }   
 }

注意:

  • 使用action bar要包含Theme.Holo相关的theme。

  • 上面代码要求android:minSdkVersion不小于11,为了支持低版本的设备,可以参阅“官方资料链接”的内容。


效果: 
enter image description here


当按下标题栏中的“<” 就会回到原来的页面

实现:

  • 在AndroidManifest.xml中设置logical parent

  <!--从android4.1开始你可以通过android:parentActivityName属性来指定每个activity的 logical parent 
      在4.1以下版本,使用 <meta-data/>标签来指定,如下: 
  -->
  
  <activity
        android:name="com.actionbar.addactionbuttons_android11.NavigateUpActivity"
        android:label="@string/title_activity_navigate_up" >
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value="com.actionbar.addactionbuttons_android11.ActionButtonActivity" />
  </activity>
  • 调用setDisplayHomeAsUpEnabled()来开启up button

public class NavigateUpActivity extends Activity {
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_navigate_up);

        //To allow Up navigation with the app icon in the action bar
        getActionBar().setDisplayHomeAsUpEnabled(true);
 }
  • 在Activity的onOptionsItemSelected()方法中设置taction bar’s Up button响应

public boolean onOptionsItemSelected(MenuItem item) {
        // TODO Auto-generated method stub
        switch (item.getItemId()) {
        case android.R.id.home:
            //Respond to the action bar's Up/Home button
             NavUtils.navigateUpFromSameTask(this);
             return true;
        }
        return super.onOptionsItemSelected(item);
 }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值