Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 高級開發 >> Action Bar示例代碼 (一)

Action Bar示例代碼 (一)

編輯:高級開發

 今天一起來看下android Action Bar的示例代碼,我們通過活動欄做一個簡單選項菜單。下面這個例子將演示ActionBar.NAVIGATION_MODE_STANDARD、ActionBar.NAVIGATION_MODE_TABS和 : ActionBar.NAVIGATION_MODE_STANDARD等模式的效果。最後Android123仍然提示大家Action Bar是android 3.0 honeycomb才開始有的特性,老版本的SDK和固件無法使用

public class ActionBarDisplayOptions extends Activity implements VIEw.OnClickListener, ActionBar.TabListener {
private View mCustomVIEw;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentVIEw(R.layout.action_bar_display_options);

findVIEwById(R.id.toggle_home_as_up).setOnClickListener(this);
findVIEwById(R.id.toggle_show_home).setOnClickListener(this);
findVIEwById(R.id.toggle_use_logo).setOnClickListener(this);
findVIEwById(R.id.toggle_show_title).setOnClickListener(this);
findVIEwById(R.id.toggle_show_custom).setOnClickListener(this);
findVIEwById(R.id.toggle_navigation).setOnClickListener(this);
findVIEwById(R.id.cycle_custom_gravity).setOnClickListener(this);

mCustomVIEw = getLayoutInflater().inflate(R.layout.action_bar_display_options_custom, null);

final ActionBar bar = getActionBar();
bar.setCustomView(mCustomVIEw,
new ActionBar.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));

bar.addTab(bar.newTab().setText("Tab 1").setTabListener(this));
bar.addTab(bar.newTab().setText("Tab 2").setTabListener(this));
bar.addTab(bar.newTab().setText("Tab 3").setTabListener(this));
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.display_options_actions, menu);
return true;
}

public void onClick(VIEw v) {
final ActionBar bar = getActionBar();
int flags = 0;
switch (v.getId()) {
case R.id.toggle_home_as_up:
flags = ActionBar.DISPLAY_HOME_AS_UP;
break;
case R.id.toggle_show_home:
flags = ActionBar.DISPLAY_SHOW_HOME;
break;
case R.id.toggle_use_logo:
flags = ActionBar.DISPLAY_USE_LOGO;
break;
case R.id.toggle_show_title:
flags = ActionBar.DISPLAY_SHOW_TITLE;
break;
case R.id.toggle_show_custom:
flags = ActionBar.DISPLAY_SHOW_CUSTOM;
break;

case R.id.toggle_navigation:
bar.setNavigationMode(
bar.getNavigationMode() == ActionBar.NAVIGATION_MODE_STANDARD
? ActionBar.NAVIGATION_MODE_TABS
: ActionBar.NAVIGATION_MODE_STANDARD);
return;
case R.id.cycle_custom_gravity:
ActionBar.LayoutParams lp = (ActionBar.LayoutParams) mCustomVIEw.getLayoutParams();
int newGravity = 0;
switch (lp.gravity & Gravity.HORIZONTAL_GRAVITY_MASK) {
case Gravity.LEFT:
newGravity = Gravity.CENTER_HORIZONTAL;
break;
case Gravity.CENTER_HORIZONTAL:
newGravity = Gravity.RIGHT;
break;
case Gravity.RIGHT:
newGravity = Gravity.LEFT;
break;
}
lp.gravity = lp.gravity & ~Gravity.HORIZONTAL_GRAVITY_MASK | newGravity;
bar.setCustomView(mCustomVIEw, lp);
return;
}

int change = bar.getDisplayOptions() ^ flags;
bar.setDisplayOptions(change, flags);
}

public void onTabSelected(Tab tab, FragmentTransaction ft) {
}

public void onTabUnselected(Tab tab, FragmentTransaction ft) {
}

public void onTabReselected(Tab tab, FragmentTransaction ft) {
}
}

接下來是文中涉及的3個XML布局文件:

相關的XML布局action_bar_display_options.XML代碼為

<?XML version="1.0" encoding="utf-8"?>

<LinearLayout XMLns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orIEntation="vertical">
<Button android:id="@+id/toggle_home_as_up"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/toggle_home_as_up" />
<Button android:id="@+id/toggle_show_home"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/toggle_show_home" />
<Button android:id="@+id/toggle_use_logo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/toggle_use_logo" />
<Button android:id="@+id/toggle_show_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/toggle_show_title" />
<Button android:id="@+id/toggle_show_custom"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/toggle_show_custom" />
<Button android:id="@+id/toggle_navigation"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/toggle_navigation" />
<Button android:id="@+id/cycle_custom_gravity"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/cycle_custom_gravity" />
</LinearLayout>

相關的自定義布局文件action_bar_display_options_custom.XML代碼為

<?XML version="1.0" encoding="utf-8"?>

<Button XMLns:android="http://schemas.android.com/apk/res/android"
android:text="@string/display_options_custom_button" />

相關的menu布局xml文件display_options_actions.XML代碼為

<?XML version="1.0" encoding="utf-8"?>

<menu XMLns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/simple_item"
android:title="@string/display_options_menu_item" />
</menu>

上面的string後的元素大家可以根據自己的情況進行替換。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved