2010-08-28 36 views
28

Dường như mọi ví dụ tôi có thể tìm thấy việc chuyển đổi giữa các hoạt động liên quan đến việc tạo ra một Intent và truyền trong ngữ cảnh của một View thông qua một OnClickListener được kết hợp với một nút.Trên Android, bạn chuyển đổi các hoạt động theo cách lập trình như thế nào?

Nhưng nếu bạn quyết định bạn cần chuyển đổi hoạt động thì sao? Trong trường hợp của tôi, giá trị ưu tiên đang gây ra một chuyển đổi Hoạt động.

Làm cách nào để bạn tạo Mục đích có thể gây ra chuyển đổi Hoạt động mà không có OnClickListener được liên kết?

+8

“hoạt động”, không phải “Hoạt động của”. Xin vui lòng. –

Trả lời

60

này nên làm điều đó cho bạn:

Intent myIntent = new Intent(this, MyActivityName.class); 
startActivity(myIntent); 

Bạn có thể gọi đó là từ bất cứ nơi nào trong hoạt động hiện tại của bạn.

+1

có thể chuyển tên hoạt động dưới dạng Chuỗi không? – mhshams

+4

@Mohammad Không theo bất kỳ chữ ký nào mà tôi đã thấy, nhưng những gì bạn có thể làm là sử dụng 'Class.forName (tên lớp đầy đủ)' để trả về một đối tượng 'Class' và sau đó truyền đối tượng' Class' đó tới phương thức khởi tạo 'Intent'. –

2

Sử dụng PreferenceChangeListener :)

1

Bạn có thể tạo intent trong hoạt động chính như thế này

Intent intent = new Intent(FirstActivity.this, second.class); 
startActivity(intent); 

Nếu bạn đang chờ đợi kết quả từ thứ hai sau đó bạn nên sử dụng

StartActivityforresult(intent,request code).

Mã yêu cầu có thể là integer.

2

khi nào bạn muốn chuyển đổi hoạt động. bạn có thể gọi những mã này.

Intent intent = new Intent(this, MyActivity.class); 
startActivity(intent); 

Bạn có thể viết mã này trong PreferenceChangeListener.

+0

bạn lừa đảo những người khác trả lời chính xác ... đến với bạn câu trả lời. – Brian

3

Tôi có phiên bản ngắn

startActivity(new Intent(CurrentActivity.this,ActivityYouWantToOpen.class)); 
5

Nó phụ thuộc vào nơi bạn muốn bắt đầu các hoạt động mới trong các mã. Bạn cần truy cập vào tham chiếu Ngữ cảnh để bắt đầu một hoạt động mới (Ví dụ: onPostExecute trong AsyncTask). Vui lòng xem this.

Mặc dù về cơ bản là điều này.

Intent myIntent = new Intent(this, ActivityName.class); 
startActivity(myIntent); 

Nó có thể là một cái gì đó như thế này cũng

Intent myIntent = new Intent(context, ActivityName.class); 
context.startActivity(myIntent); 
+0

Tôi thấy buồn cười như thế nào bạn đã thực hiện chính xác cùng một lỗi như câu trả lời được chấp nhận với tên lớp 'AvitivityName';) Bạn có thể chỉ cần trỏ rằng trong một bình luận bạn biết :) – AxelH

+0

@AxelH Yeah;) Hãy để tôi kết hợp nó, tôi cảm thấy tốt bây giờ, phải không? –

1
startActivity (new Intent (Thisactivity.this, Nextactivity.class)); 

Đừng quên để thêm hoạt động để bạn manifest

<Activity android:name=".NextActivity> 
0

Trước hết bạn cần để tạo ra giao diện người dùng cho một bằng cách sử dụng tệp intro_activity_1.XML bố cục. Sau đó thiết lập id cho nhóm nút sử dụng android: id = "@ + id/nút"

Ví dụ:

intro_activity_1.xml

<Button android:id="@+id/button"  
android:layout_width="wrap_content"  
android:layout_height="wrap_content"  
android:layout_weight="1"  
android:background="@android:color/transparent"  
android:text="NEXT" /> 

Bây giờ thay đổi lớp java của bạn hoạt động đầu tiên. Trong ví dụ này, chúng tôi thay đổi tệp java của IntroActivity1.java

Ví dụ:

IntroActivity1.java

//header, import and package data 


public class IntroActivity1 extends AppCompatActivity { 


    Button next_btn; 

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.intro_activity_1); 

      next_btn=(Button)findViewById(R.id.button);//button class 

      next_btn.setOnClickListener(new View.OnClickListener(){ 
    public void onClick(View arg0){ 
     //Start new activity class 
       Intent myIntent=new Intent(IntroActivity1.this,IntroActivity2.class); 
      startActivity(myIntent); 
     } 
    }); 
} 

Để biết thêm thông tin chi tiết về hoạt động đổi truy cập: https://answerdone.blogspot.com/2018/01/how-to-change-new-activity-in-android.html

Các vấn đề liên quan