1. Trang chủ
  2. » Công Nghệ Thông Tin

Lập trình Android: Demo ActionBar potx

13 433 2

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 13
Dung lượng 221,5 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Demo ActionBar Trong bài viết này, mình sẽ tạo ra 1 demo nho nhỏ trên Android 3.0 về các ActionBar, cơ bản thì mình thấy các ActionBar cho phép chỉnh TitleBar của 1 Activity để có thể n

Trang 1

Demo ActionBar Trong bài viết này, mình sẽ tạo ra 1 demo nho nhỏ trên Android 3.0 về các ActionBar,

cơ bản thì mình thấy các ActionBar cho phép chỉnh TitleBar của 1 Activity để có thể nhảy qua 1 Activity khác Và các bạn cũng lưu ý thêm là trong phần này mình chỉ làm 1 ứng dụng mang tính chất demo (xuất các command line ra màn hình) chứ không hẳn

và 1 ứng dụng hoàn chỉnh để làm 1 cái gì đó Và code phần demo của mình như sau:

1/ Tạo Project :

Project name: TestActionBar

Build Target: Android 3.2

Application name: TestActionBar

Package name: com.dac.actionbar

Create Activity: TabNavigationActionBarActivity

2/ Trong file main.xml :

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

<LinearLayout

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

android:orientation="vertical"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:gravity="fill"

>

<TextView android:id="@+id/textViewId"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:background="@android:color/white"

android:text="Initial Text Message"

android:textColor="@android:color/black"

android:textSize="25sp"

android:scrollbars="vertical"

android:scrollbarStyle="insideOverlay"

android:scrollbarSize="25dip"

android:scrollbarFadeDuration="0"

/>

</LinearLayout>

Trang 2

3/ Các bạn tạo thêm 1 folder menu và 1 file menu.xml trong folder đó:

<menu

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

<group android:id="@+id/menuGroup_Main">

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

android:title="Action Icon1"

android:icon="@drawable/creep001"

android:showAsAction="ifRoom"/>

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

android:title="Action Icon2"

android:icon="@drawable/creep002"

android:showAsAction="ifRoom"/>

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

android:title="Icon Test"

android:icon="@drawable/creep003"/>

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

android:title="Invoke List Nav"

/>

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

android:title="Invoke Standard Nav"

/>

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

android:title="Invoke Tab Nav"

/>

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

android:orderInCategory="10"

android:title="clear" />

</group>

</menu>

4/ Và trong Package chính các bạn tạo từng class lẫn Activity có tên và code như sau: (lưu ý thêm các hình với tên tương ứng trong folder drawable)

+BaseActionBarActivity.java:

Trang 3

package com.dac.actionbar;

{

{

R.layout.main, R.id.textViewId, inTag);

tag = inTag;

}

@Override

{

super.onCreate(savedInstanceState);

TextView tv = this.getTextView();

tv.setText(tag);

}

{

if (item.getItemId() == android.R.id.home) {

this.reportBack(tag,"Home Pressed");

}

if (item.getItemId() == R.id.menu_invoke_tabnav){

if (getNavMode() ==

ActionBar.NAVIGATION_MODE_TABS)

this.reportBack(tag,

"You are already in tab nav");

}

if (item.getItemId() == R.id.menu_invoke_listnav){

if (getNavMode() ==

ActionBar.NAVIGATION_MODE_LIST)

Trang 4

{

this.reportBack(tag,

"You are already in list nav");

}

if (item.getItemId() == R.id.menu_invoke_standardnav){

if (getNavMode() ==

ActionBar.NAVIGATION_MODE_STANDARD)

this.reportBack(tag,

"You are already in standard nav");

this.invokeStandardNav();

}

}

ActionBar bar = this.getActionBar();

}

Intent i = new Intent(this,

TabNavigationActionBarActivity.class);

startActivity(i);

}

Intent i = new Intent(this,

ListNavigationActionBarActivity.class);

startActivity(i);

}

Intent i = new Intent(this,

StandardNavigationActionBarActivity.class);

startActivity(i);

}

}

+ BaseListener.java:

Trang 5

import android.content.Context;

{

{

mReportTo = target;

mContext = ctx;

}

}

+ DebugActivity.java :

{

onMenuItemSelected(MenuItem item);

int inLayoutId,

int inDebugTextViewId, String inTag)

{

tag = inTag;

Trang 6

menuId = inMenuId;

layoutid = inLayoutId;

debugTextViewId = inDebugTextViewId;

}

@Override

super.onCreate(savedInstanceState);

setContentView(this.layoutid);

TextView tv = this.getTextView();

tv.setMovementMethod(

ScrollingMovementMethod.getInstance());

}

@Override

MenuInflater inflater = getMenuInflater();

inflater.inflate(menuId, menu);

}

@Override

appendMenuItemText(item);

if (item.getItemId() == R.id.menu_da_clear){

this.emptyText();

}

if (b == true)

{

}

}

return

(TextView)this.findViewById(this.debugTextViewId);

}

String title = menuItem.getTitle().toString();

appendText("MenuItem:" + title);

}

TextView tv = getTextView();

tv.setText("");

}

TextView tv = getTextView();

tv.setText(s + "\n" + tv.getText());

Log.d( tag,s);

}

Trang 7

this.appendText(tag + ":" + message);

Log.d(tag,message);

}

{

String s = tag + ":" + message;

Toast mToast =

Toast.makeText(this, s, Toast.LENGTH_SHORT);

mToast.show();

reportBack(tag,message);

Log.d(tag,message);

}

}

+ IReportBack.java:

{

}

+ ListListener.java :

{

Context ctx, IReportBack target)

{

}

int itemPosition, long itemId)

{

this.mReportTo.reportBack(

"list listener","ItemPostion:" + itemPosition);

}

}

Trang 8

+ ListNavigationActionBarActivity.java:

{

"List Navigation ActionBarActivity";

{

}

@Override

{

super.onCreate(savedInstanceState);

workwithListActionBar();

}

{

ActionBar bar = this.getActionBar();

bar.setTitle(tag);

bar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);

bar.setListNavigationCallbacks(

new SimpleSpinnerArrayAdapter(this),

new ListListener(this,this));

}

}

+ SimpleSpinnerArrayAdapter.java :

Trang 9

public class SimpleSpinnerArrayAdapter

{

{

android.R.layout.simple_spinner_item, new String[]{"one","two"});

this.setDropDownViewResource(

android.R.layout.simple_spinner_dropdown_item);

}

int position, View convertView, ViewGroup parent)

{

position, convertView, parent);

}

}

+ StandardNavigationActionBarActivity.java :

{

"Standard Navigation ActionBarActivity";

{

}

@Override

{

super.onCreate(savedInstanceState);

workwithStandardActionBar();

}

{

ActionBar bar = this.getActionBar();

bar.setTitle(tag);

bar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);

Trang 10

attachTabs(bar);

}

{

TabListener tl = new TabListener(this,this);

Tab tab1 = bar.newTab();

tab1.setText("Tab1");

tab1.setTabListener(tl);

bar.addTab(tab1);

Tab tab2 = bar.newTab();

tab2.setText("Tab2");

tab2.setTabListener(tl);

bar.addTab(tab2);

}

}

+ TabListener.java :

{

IReportBack target) {

}

FragmentTransaction ft)

{

this.mReportTo.reportBack(tag, "ontab re selected:" + tab.getText());

}

FragmentTransaction ft) {

this.mReportTo.reportBack(tag, "ontab selected:" + tab.getText());

}

FragmentTransaction ft)

Trang 11

this.mReportTo.reportBack(tag, "ontab un selected:" + tab.getText());

}

}

+ TabNavigationActionBarActivity.java :

{

"Tab Navigation ActionBarActivity";

{

}

@Override

{

super.onCreate(savedInstanceState);

workwithTabbedActionBar();

}

{

ActionBar bar = this.getActionBar();

bar.setTitle(tag);

bar.setNavigationMode(

ActionBar.NAVIGATION_MODE_TABS);

TabListener tl = new TabListener(this,this);

Tab tab1 = bar.newTab();

tab1.setText("Tab1");

tab1.setTabListener(tl);

bar.addTab(tab1);

Tab tab2 = bar.newTab();

tab2.setText("Tab2");

tab2.setTabListener(tl);

bar.addTab(tab2);

Trang 12

}

}

Để có thể chạy được ứng dụng thì các bạn phải khai báo các Activity vừa tạo trong file AndroidManifest.xml:

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

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

package="com.dac.actionbar"

android:versionCode="1"

android:versionName="1.0.0">

<application android:icon="@drawable/icon"

android:label="ActionBars Demo App">

<activity android:name=".TabNavigationActionBarActivity"

android:label="Action Bar Demonstration: TabNav">

<intent-filter>

<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />

</intent-filter>

</activity>

<activity android:name=".ListNavigationActionBarActivity"

android:label="Action Bar Demonstration: ListNav">

</activity>

<activity android:name=".DropdownListNavigationActionBarActivity"

android:label="Action Bar Demonstration: DropdownNav">

</activity>

<activity android:name=".StandardNavigationActionBarActivity"

android:label="Action Bar Demonstration: StandardNav">

</activity>

</application>

<uses-sdk android:minSdkVersion="11" />

</manifest>

Cuối cùng các bạn chỉ việc chạy thử ứng dụng và bấm vào các biểu tượng, tab trên Title :

Ngày đăng: 08/08/2014, 22:20

TỪ KHÓA LIÊN QUAN

w