Bài 24: Intent trong Android(P1)

Leave a Comment
1) Dùng Intent để mở một Activity khác nhưng không kiểm soát kết quả trả về.
2) Dùng Intent để mở một Activity khác và có kiểm soát kết quả trả về.
Bây giờ chúng ta vào từng ví dụ cụ thể:
Ví dụ 1: Đơn thuần là mở một Activity khác.
24_intent_0
- Tôi giải thích hình trên như sau: Từ Main Activity Tôi có 1 Button, khi nhấn vào Button này thì sẽ mở một Activity khác, tại Activity mới mở này sẽ có 1 Button cho phép quay trở lại MainActivity.
- Bạn phải nhớ lại vòng đời của một ứng dụng Android ở bài tập 5 và bài tập 6 để làm ví dụ này tốt hơn.
- Bạn tạo một Android Project có cấu trúc như hình bên dưới:
24_intent_1- Bạn chú ý là mọi Activity muốn được triệu gọi trong Android thì phải đăng ký trong Manifest, ở các bài tập trước Tôi cũng đã nói rồi, nhưng Tôi vẫn nhắc lại AndroidManifest.xml:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?xml version="1.0" encoding="utf-8"?>
 package="tranduythanh.com"
 android:versionCode="1"
 android:versionName="1.0" >
 <uses-sdk
 android:minSdkVersion="14"
 android:targetSdkVersion="17" >
 </uses-sdk>
 <application
 android:allowBackup="true"
 android:icon="@drawable/ic_launcher"
 android:label="@string/app_name"
 android:theme="@style/AppTheme" >
 <activity
 android:name="tranduythanh.com.MainActivity"
 android:label="@string/app_name" >
 <intent-filter>
 <action android:name="android.intent.action.MAIN" />
 <category android:name="android.intent.category.LAUNCHER" />
 </intent-filter>
 </activity>
 <activity
 android:name="tranduythanh.com.ChildActivity"
 android:label="@string/title_activity_child" >
 </activity>
 </application>
</manifest>
- Bạn thấy đó cả MainActivity (dòng 16) và ChildActivity (Dòng 24)  đều phải được đăng ký trong Manifest.
- Giờ ta xem giao diện và cách xử lý coding trong MainActivity:
24_intent_2- Đây là cấu trúc XML của activity_main.xml ở trên:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:id="@+id/LinearLayout1"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:orientation="vertical"
 tools:context=".MainActivity" >
 
<TextView
 android:id="@+id/textView1"
 android:layout_width="match_parent"
 android:layout_height="100dp"
 android:background="#008000"
 android:gravity="center"
 android:text="This is main Activity"
 android:textColor="#FFFF00"
 android:textSize="20sp"
 android:textStyle="bold" />
 
<Button
 android:id="@+id/btnOpenChildActivity"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:layout_gravity="center"
 android:text="Open Child Activity" />
 
</LinearLayout>
- Tiến hành xem coding MainActivity.java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
package tranduythanh.com;
 
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
 
public class MainActivity extends Activity {
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);
 Button btnOpen=(Button)
 findViewById(R.id.btnOpenChildActivity);
 btnOpen.setOnClickListener(new
 View.OnClickListener() {
 public void onClick(View arg0) {
 doOpenChildActivity();
 }
 });
 }
 public void doOpenChildActivity()
 {
 Intent myIntent=new Intent(this, ChildActivity.class);
 startActivity(myIntent);
 }
 public boolean onCreateOptionsMenu(Menu menu) {
 // Inflate the menu; this adds items to the action bar if it is present.
 getMenuInflater().inflate(R.menu.activity_main, menu);
 return true;
 }
}
- Quan sát dòng lệnh 25:..
Xem tiếp P2

0 nhận xét:

Đăng nhận xét