- Tiến hành xem coding của 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
34
35
36
37
38
39
40
41
42
| 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; import android.widget.EditText; public class MainActivity extends Activity { EditText txta,txtb; Button btnketqua; protected void onCreate(Bundle savedInstanceState) { super .onCreate(savedInstanceState); setContentView(R.layout.activity_main); txta=(EditText) findViewById(R.id.txta); txtb=(EditText) findViewById(R.id.txtb); btnketqua=(Button) findViewById(R.id.btnketqua); btnketqua.setOnClickListener( new View.OnClickListener() { public void onClick(View arg0) { //Tạo Intent để mở ResultActivity Intent myIntent= new Intent(MainActivity. this , ResultActivity. class ); //Khai báo Bundle Bundle bundle= new Bundle(); int a=Integer.parseInt(txta.getText().toString()); int b=Integer.parseInt(txtb.getText().toString()); //đưa dữ liệu riêng lẻ vào Bundle bundle.putInt( "soa" , a); bundle.putInt( "sob" , b); //Đưa Bundle vào Intent myIntent.putExtra( "MyPackage" , bundle); //Mở Activity ResultActivity 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 ; } } |
- Tôi đã giải thích mã lệnh trong đoạn code ở trên rồi.
- Ở dòng 31, key nhận dạng Bundle là MyPackage, bên ResultActivity sẽ dựa vào key này để lấy Bundle ra.
- Sau khi có Bundle rồi thì dựa vào soa, sob ở dòng lệnh 28,29 để lấy đúng dữ liệu.
- Bây giờ ta qua giao diện ResultActivity:
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
| android:id = "@+id/LinearLayout1" android:layout_width = "match_parent" android:layout_height = "match_parent" android:orientation = "vertical" tools:context = ".ResultActivity" > < TextView android:id = "@+id/textView1" android:layout_width = "match_parent" android:layout_height = "wrap_content" android:gravity = "center" android:text = "Kết quả giải phương trình bậc 1" /> < TextView android:id = "@+id/txtketqua" android:layout_width = "match_parent" android:layout_height = "50sp" android:gravity = "center" android:background = "#CCFFD9" /> < Button android:id = "@+id/btnBack" android:layout_width = "wrap_content" android:layout_height = "wrap_content" android:layout_gravity = "center" android:text = "Back" /> </ LinearLayout > |
- Tiếp tục xem xử lý coding của ResultActivity:
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
| package tranduythanh.com; import java.text.DecimalFormat; import android.os.Bundle; import android.app.Activity; import android.content.Intent; import android.view.Menu; import android.view.View; import android.widget.Button; import android.widget.TextView; public class ResultActivity extends Activity { TextView txtketqua; Button btnBack; protected void onCreate(Bundle savedInstanceState) { super .onCreate(savedInstanceState); setContentView(R.layout.activity_result); btnBack=(Button) findViewById(R.id.btnBack); txtketqua=(TextView) findViewById(R.id.txtketqua); //lấy intent gọi Activity này Intent callerIntent=getIntent(); //có intent rồi thì lấy Bundle dựa vào MyPackage Bundle packageFromCaller= callerIntent.getBundleExtra( "MyPackage" ); //Có Bundle rồi thì lấy các thông số dựa vào soa, sob int a=packageFromCaller.getInt( "soa" ); int b=packageFromCaller.getInt( "sob" ); //tiến hành xử lý giaipt(a, b); btnBack.setOnClickListener( new View.OnClickListener() { public void onClick(View v) { finish(); } }); } public void giaipt( int a, int b) { String kq= "" ; if (a== 0 && b== 0 ) { kq= "Vô số nghiệm" ; } else if (a== 0 && b!= 0 ) { kq= "Vô nghiệm" ; } else { DecimalFormat dcf= new DecimalFormat( "0.##" ); kq=dcf.format(-b* 1.0 /a); } txtketqua.setText(kq); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.activity_result, menu); return true ; } } |
-Bạn xem dòng lệnh 22: Intent callerIntent=getIntent(); lệnh này cho phép lấy Intent start Activity này. Tức là lấy Intent mà ta khai báo bên MainActivity để start ResultActivity.
- Có được Intent này rồi thì mọi thứ bạn làm như Tôi giải thích trong Coding ở trên.
- Bạn có thể tải coding mẫu ở đây:http://www.mediafire.com/?vb8ddcoos7dupv7
0 nhận xét:
Đăng nhận xét