Cách gọn gàng hơn câu trả lời được chấp nhận sẽ là sử dụng Serializable
hoặc Parcelable
.
Dưới đây là một ví dụ về cách để làm điều đó bằng Serializable
:
Trong hoạt động đầu tiên của bạn ...
Intent intent = new Intent(FirstActivity.this, SecondActivity.class);
intent.putExtra("EXTRA_NEXT_ACTIVITY_CLASS", ThirdActivity.class);
startActivity(intent);
Sau đó, trong hoạt động thứ hai của bạn ...
Bundle extras = getIntent().getExtras();
Class nextActivityClass = (Class<Activity>)extras.getSerializable("EXTRA_NEXT_ACTIVITY_CLASS");
Intent intent = new Intent(SecondActivity.this, nextActivityClass);
startActivity(intent);
Làm nó với Parcelable
là khá nhiều giống nhau, ngoại trừ bạn sẽ thay thế extras.getSerializable("EXTRA_NEXT_ACTIVITY_CLASS")
trong mã trên với extras.getParcelable("EXTRA_NEXT_ACTIVITY_CLASS")
.
Phương pháp đáng giá sẽ nhanh hơn, nhưng khó thiết lập hơn (vì bạn cần thực hiện Hoạt động thứ ba của mình, triển khai Parcelable
- xem http://developer.android.com/reference/android/os/Parcelable.html).
Nguồn
2016-01-07 21:01:38
Bạn muốn đạt được điều gì? – Stefan
tôi có hoạt động cài đặt thay đổi chủ đề cho ứng dụng, vì vậy tôi cần hoạt động cài đặt để bắt đầu hoạt động gọi cho cô ấy khi hoàn thành. các reson i cant chỉ sử dụng kết thúc() là tôi cần hoạt động cuối cùng để bắt đầu lại và không tiếp tục jst. –