ActionBar总结1_实现menu,Navigate up

来源:互联网 发布:创业法学网络课答案 编辑:程序博客网 时间:2024/05/29 18:19

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

主要内容:

  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
原创粉丝点击