例子见资源(不需要资源积分)
主要内容:
使用action bar的menu
Navigating Up with the App Icon
使用action bar的menu
效果:
实现:
-
在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,为了支持低版本的设备,可以参阅“官方资料链接”的内容。
Navigating Up with the App Icon
效果:
当按下标题栏中的“<” 就会回到原来的页面
实现:
-
在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); }