Tải bản đầy đủ (.doc) (8 trang)

Lập trình Android: Tạo và chạy Library ppt

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (124.34 KB, 8 trang )

Trung tâm Tin học – ĐH KHTN
Test LibLibrary
Đôi khi trong lập trình bạn sữ dụng lại code cũng như các module đã viết nhiều lần. Để
thuận lợi cho công việc trên hầu hết các công cụ lập trình hiện nay đều hỗ trợ các
phương thức như Class, Lib… Và sau đây mình sẽ demo các tạo và chạy 1 Lib trong
Android. Mình sẽ tạo 2 Project khác nhau trong cùng 1 workspace và cho 1 cái gọi cái
còn lại.
1/ Tạo 2 Project :
Project name: TestLibrary
Build Target: Android 2.3.3
Application name: TestLibrary
Package name: com.dac.TestLibrary
Create Activity: TestLibraryActivity
Project name: TestLibraryApp
Build Target: Android 2.3.3
Application name: TestLibraryApp
Package name: com.dac.TestLibraryApp
Create Activity: TestAppActivity
Và các bạn viết code lần lượt trong Project trên như sau:
+ TestLibrary:
Ta đổi tên file layout main.xml thành lib_main.xml và thêm code như sau:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android=" /> android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:id="@+id/text1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Day la LIB"


/>
Lập trình Android – Page 1
Trung tâm Tin học – ĐH KHTN
</LinearLayout>
Và ta tạo tiếp 1 folder Menu và tạo tiếp file lib_main_menu.xml trong
folder đó có code như sau:
<menu xmlns:android=" /> <group android:id="@+id/menuGroup_Main">
<item android:id="@+id/menu_clear"
android:title="clear" />

<item android:id="@+id/menu_testlib_1"
android:title="Lib Test Menu1" />

<item android:id="@+id/menu_testlib_2"
android:title="Lib Test Menu2" />
</group>
</menu>
Và trong file TestLibActivity.java :
package com.dac.TestLibrary;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.widget.TextView;
public class TestLibActivity extends Activity
{
public static final String tag="HelloWorldLibActivity";
/** Called when the activity is first created. */
@Override

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.lib_main);
}

@Override
public boolean onCreateOptionsMenu(Menu menu)
{

super.onCreateOptionsMenu(menu);
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.lib_main_menu, menu);
Lập trình Android – Page 2
Trung tâm Tin học – ĐH KHTN
return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item)
{
appendMenuItemText(item);
if (item.getItemId() == R.id.menu_clear)
{
this.emptyText();
return true;
}
return true;
}

private TextView getTextView()

{
return (TextView)this.findViewById(R.id.text1);
}
public void appendText(String abc)
{
TextView tv = getTextView();
tv.setText(tv.getText() + "\n" + abc);
}

private void appendMenuItemText(MenuItem menuItem)
{
String title = menuItem.getTitle().toString();
TextView tv = getTextView();
tv.setText(tv.getText() + "\n" + title);
}
private void emptyText()
{
TextView tv = getTextView();
tv.setText("");
}
}
+ TestLibraryApp :
Trong file main.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android=" /> android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
Lập trình Android – Page 3

Trung tâm Tin học – ĐH KHTN
android:id="@+id/text1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Day la LibApp"
/>
</LinearLayout>
Ta cũng tạo 1 folder menu trong res/ và tạo file main_menu.xml trong
folder đó:
<menu xmlns:android=" /> <group android:id="@+id/menuGroup_Main">
<item android:id="@+id/menu_clear"
android:title="clear" />

<item android:id="@+id/menu_library_activity"
android:title="invoke lib" />
</group>
</menu>
Và trong file TestAppActivity.java:
package com.dac.TestLibraryApp;
import com.androidbook.library.testlibraryapp.R;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.util.Log;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.widget.TextView;
import com.androidbook.library.testlibrary.*;

public class TestAppActivity extends Activity
{
public static final String tag="HelloWorld";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}

@Override
public boolean onCreateOptionsMenu(Menu menu)
{
Lập trình Android – Page 4
Trung tâm Tin học – ĐH KHTN
super.onCreateOptionsMenu(menu);
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main_menu, menu);
return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item)
{
appendMenuItemText(item);
if (item.getItemId() == R.id.menu_clear)
{
this.emptyText();
return true;
}
if (item.getItemId() == R.id.menu_library_activity)

{
this.invokeLibActivity(item.getItemId());
return true;
}
return true;
}

private void invokeLibActivity(int mid)
{
Intent intent = new Intent(this,TestLibActivity.class);
intent.putExtra("com.ai.menuid", mid);
startActivity(intent);
}

private TextView getTextView()
{
return (TextView)this.findViewById(R.id.text1);
}
public void appendText(String abc)
{
TextView tv = getTextView();
tv.setText(tv.getText() + "\n" + abc);
}

private void appendMenuItemText(MenuItem menuItem)
{
String title = menuItem.getTitle().toString();
TextView tv = getTextView();
tv.setText(tv.getText() + "\n" + title);
}

private void emptyText()
{
TextView tv = getTextView();
tv.setText("");
}
}
Lập trình Android – Page 5
Trung tâm Tin học – ĐH KHTN
Trong phần trên ta thấp Project này có sữ dụng lại file TestLibActivity.java nên ta phải
sữa lại trong AndroidManisfest.xml như sau:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android=" /> package="com.androidbook.library.testlibraryapp"
android:versionCode="1"
android:versionName="1.0.0">
<application android:icon="@drawable/icon" android:label="Test Library App">
<activity android:name=".TestAppActivity"
android:label="Test Library App">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="com.dac.TestLibrary.TestLibActivity"
android:label="Test Library Activity"/>
</application>
<uses-sdk android:minSdkVersion="3" />
</manifest>
Và cuối cùng khi debug ứng dụng như sau (Chú ý là chạy Project TestLibraryApp
trước ):
Ban đầu:

Lập trình Android – Page 6
Trung tâm Tin học – ĐH KHTN
Và khi ta bấm vào menu invoke lib, ta gọi và chạy được Project TestLibrary:
Lập trình Android – Page 7
Trung tâm Tin học – ĐH KHTN
Mọi ý kiến đóng góp các bạn vui lòng gữi bài viết về forum :
. Rất mong nhận được sự phản hồi của các bạn.
Lập trình Android – Page 8

×