Nơi dành cho thành viên đăng các bài viết hoàn chỉnh hoặc các câu hỏi
Search
Statistics
Total online: 1
Guests: 1
Users: 0
Nhận kết quả từ một intent
16-06-2012, 4:53 PM
startActivity() là phương thức
dùng để gọi một activity khác hiện lên nhưng chúng ta sẽ không nhận được
kết quả trả về từ activity đó. Trong bài này sẽ hướng dẫn bạn hiện một
activity khác và trả về kết quả cho activity chính. startActivityForResult() là phương thức được sử dụng trong bài này.
1. Tạo một file xml sau: secondactivity.xml
<LinearLayout xmlns:android=”http://schemas.android.com/apk/res/android” android:layout_width=”fill_parent” android:layout_height=”fill_parent” android:orientation=”vertical” > <TextView android:layout_width=”fill_parent” android:layout_height=”wrap_content” android:text=”This is the Second Activity!” /> <TextView android:layout_width=”fill_parent” android:layout_height=”wrap_content” android:text=”Please enter your name” /> <EditText android:id=”@+id/txt_username” android:layout_width=”fill_parent” android:layout_height=”wrap_content” /> <Button android:id=”@+id/btn_OK” android:layout_width=”fill_parent” android:layout_height=”wrap_content” android:text=”OK” android:onClick=”onClick”/>
</LinearLayout>
2. Tạo một acvitity thứ hai SecondActivity.java package net.learn2develop.UsingIntent; import android.app.Activity; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.view.View; import android.widget.EditText; public class SecondActivity extends Activity{ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.secondactivity); }
public void onClick(View view) { Intent data = new Intent(); //---get EditText view--- EditText txt_username = (EditText) findViewById(R.id.txt_username);
//---set the data khi quay lại--- data.setData(Uri.parse(txt_username.getText().toString ())); setResult( RESULT_OK, data);
//---đóng activity--- finish(); } }
3. Tạo activity chính UsingIntentActivity.java package net.learn2develop.UsingIntent; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.Toast; public class UsingIntentActivity extends Activity { int request_Code = 1;
/** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); }
public void onClick(View view) { startActivityForResult(new Intent("net.learn2develop.SecondActivity”), request_Code); }
public void onActivityResult( int requestCode, int resultCode, Intent data) { if (requestCode == request_Code) { if (resultCode == RESULT_OK) {Toast.makeText (this,data.getData().toString (),Toast.LENGTH_SHORT).show(); } } } }