Hướng dẫn lập trình cơ bản với Android - Phần 14

Layout của Activity2 tương tự như Activity1, nhưng Button bây giờ là để gọi

BroadCast Receiver. Ngoài ra mình dùng EditText để hiển thị value nhận được (do

nó có cái đường bao ngoài đẹp hơn TextView ^_^) nên không cho phép nhập giá

trị vào EditText này

pdf5 trang | Chuyên mục: Android | Chia sẻ: dkS00TYs | Lượt xem: 1705 | Lượt tải: 1download
Tóm tắt nội dung Hướng dẫn lập trình cơ bản với Android - Phần 14, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
 B3: Tạo giao diện cho Activity2 -> Chuột phải vào folder res\layout -> New -> 
Android XML File ->Gõ tên là activity2_layout.xml 
Mã: 
<LinearLayout 
xmlns:android="
id" 
 android:orientation="vertical" 
 android:layout_width="fill_parent" 
 android:layout_height="fill_parent" 
 > 
 <TextView 
 android:layout_width="fill_parent" 
 android:layout_height="wrap_content" 
 android:text="Activity 2 - Receive value" 
 android:typeface="normal" 
 android:textSize="14px" 
 android:textStyle="bold" 
 android:textColor="#cccccc" 
 android:background="#333333" 
 /> 
 <EditText 
 android:id="@+id/value_receive" 
 android:layout_width="fill_parent" 
 android:layout_height="wrap_content" 
 android:textSize="20px" 
 android:gravity="center" 
 android:lines="1" 
 android:numeric="integer" 
 android:enabled="false" 
 /> 
 <RelativeLayout 
 android:layout_width="fill_parent" 
 android:layout_height="fill_parent"> 
 <Button 
 android:id="@+id/call_button" 
 android:layout_width="fill_parent" 
 android:layout_height="wrap_content" 
 android:text="Call Broadcast Receiver" 
 android:layout_alignParentBottom="true" 
 /> 
Layout của Activity2 tương tự như Activity1, nhưng Button bây giờ là để gọi 
BroadCast Receiver. Ngoài ra mình dùng EditText để hiển thị value nhận được (do 
nó có cái đường bao ngoài đẹp hơn TextView ^_^) nên không cho phép nhập giá 
trị vào EditText này 
Mã: 
android:enabled="false" 
B4:Sửa lại nội dung của Activity1.java như sau: 
Mã: 
package at.exam; 
import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.EditText; 
public class Activity1 extends Activity { 
 /** Called when the activity is first created. */ 
 @Override 
 public void onCreate(Bundle savedInstanceState) { 
 super.onCreate(savedInstanceState); 
 setContentView(R.layout.activity1_layout); 
 final EditText editValue = (EditText) 
findViewById(R.id.value_edit); 
 final Button sendButton = (Button) 
findViewById(R.id.send_button); 
 sendButton.setOnClickListener(new 
OnClickListener() { 
 public void onClick(View v) { 
 String valueString = 
editValue.getText().toString(); 
 long value; 
 if (valueString != null) { 
 value = 
Long.parseLong(valueString); 
 } 
 else { 
 value = 0; 
 } 
 //Tạo 1 đối tượng Bundle để gửi 
đi cùng Intent 
 Bundle sendBundle = new Bundle(); 
 sendBundle.putLong("value", 
value); 
 //Tạo Intent để khởi chạy 
Activity2 và gắn sendBundble vào Intent 
 Intent i = new 
Intent(Activity1.this, Activity2.class); 
 i.putExtras(sendBundle); 
 startActivity(i); 
 //Giải phóng Activity1 khỏi 
Activity Stack vì ta sẽ ko quay lại nó nữa 
 finish(); 
 } 
 }); 
 } 
} 
B5: Tạo mới 1 Class Activity2.java trong package at.exam -> chỉnh sửa nội dung: 
Mã: 
package at.exam; 
import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.EditText; 
public class Activity2 extends Activity { 
 /** Called when the activity is first created. */ 
 @Override 
 public void onCreate(Bundle savedInstanceState) { 
 super.onCreate(savedInstanceState); 
 setContentView(R.layout.activity2_layout); 
 final EditText receiveValueEdit = (EditText) 
findViewById(R.id.value_receive); 
 final Button callReceiverButton = (Button) 
findViewById(R.id.call_button); 
 //Lấy về Bundle được gửi kèm Intent rồi lấy ra 
giá trị 
 Bundle receiveBundle = 
this.getIntent().getExtras(); 
 final long receiveValue = 
receiveBundle.getLong("value"); 
receiveValueEdit.setText(String.valueOf(receiveValue)); 
 callReceiverButton.setOnClickListener(new 
OnClickListener() { 
 public void onClick(View v) { 
 //Khởi tạo 1 Intent để gửi tới 
BroadCast Receiver 
 //Gắn giá trị vào Intent, lần này 
ko cần Bundle nữa 
 Intent i = new 
Intent(Activity2.this, Receiver.class); 
 i.putExtra("new value", 
receiveValue - 10); 
 sendBroadcast(i); 
 } 
 }); 
 } 
} 

File đính kèm:

  • pdfHướng dẫn lập trình cơ bản với Android - Phần 14.pdf