2012-07-12 41 views
19

Tôi muốn tạo ra một nút đó sẽ dẫn người dùng thẳng trở lại hoạt động chính mà không có tên android = "com.example.example".
Nó đã android.intent.etc ...
Làm thế nào tôi có thể tham khảo nút của tôi quay trở lại hoạt động này?Nút quay trở lại MainActivity

+0

nhờ để chỉnh sửa, (có tiếng anh xấu) – Moussa

+0

tên đầy đủ của các Hoạt động bạn đang cố gắng để bắt đầu là bao nhiêu? – confucius

+0

Hoạt động chính, cô là <ứng dụng android: biểu tượng = "@ drawable/ic_launcher" android: label = "@ string/app_name"> Moussa

Trả lời

40

phép nói rằng hoạt động chính của bạn được gọi là Main.java.

btnBack.setOnClickListener(new OnClickListener(){ 

    private void onClick(){ 
    Intent intent = new Intent(currentActivity.this, Main.class); 
    intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    startActivity(intent); 
    } 
}); 
+0

Thao tác này sẽ thêm một hoạt động Trang chủ mới vào ngăn xếp, không đưa người dùng trở lại hoạt động Trang chủ. –

+0

Bạn đang thêm cá thể mới vào ngăn xếp !! –

+1

Tôi đã thêm cờ để nó không thêm một thể hiện mới vào ngăn xếp. – zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz

0

Vâng từ bất cứ nơi nào bạn đang chỉ cần gọi startActivity() với các thông số cần thiết bên trong nút onClick phương pháp. Đó là nó.

+0

??? im a noob xin lỗi – Moussa

3
Intent intent = new Intent(this, Main.class); 
     intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
     startActivity(intent); 
+0

lỗi về Intent mới (this, Main.class); – Moussa

+0

lỗi là gì – confucius

+0

Đây là thiết lập của tôi: công khai void onClick (Xem v) { \t // Thực hiện tác vụ khi nhấp vào \t \t Ý định mục đích = new Intent (this, Main.class); \t intent.addFlags (Intent.FLAG_ACTIVITY_NEW_TASK \t | Intent.FLAG_ACTIVITY_CLEAR_TOP); \t startActivity (intent); \t \t Đây là lỗi: Ý định xây dựng (mới View.OnClickListener() {}, Class

) là undefined'. – Moussa

14

sử dụng startActivity(intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP));

+0

+1: Đây là câu trả lời đúng. Thêm cờ như NEW_TASK sẽ chỉ tạo ra hành vi không mong muốn cho người dùng, và đơn giản là bắt đầu một hoạt động mới sẽ thêm một thể hiện thứ hai (mới) vào ngăn xếp. – Devunwired

+0

không hoạt động, bạn có thể chi tiết hơn không? – Moussa

+1

@Moussa Intent a = new Intent (this, Home.class); a.setFlags (Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity (a); –

9

Đôi khi bạn chỉ có thể gọi activity.finish() nhằm chấm dứt hoạt động hiện tại, do đó chính (đầu tiên được tạo ra) hoạt động sẽ bật ra.

Nếu đây không phải là trường hợp của bạn, làm điều này:

Intent intent = new Intent(getApplicationContext(), Main.class); 
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)    
startActivity(intent); 
0
public void onBackPressed(){ 
    finish(); 
} 
+2

điều này không có nghĩa là nó sẽ đi đến chính, nó có nghĩa là nó sẽ chỉ trở lại hoạt động trước đó trên ngăn xếp. Đó là sai –

+0

Điều này không cung cấp câu trả lời cho câu hỏi. Khi bạn có đủ [danh tiếng] (https://stackoverflow.com/help/whats-reputation), bạn sẽ có thể [nhận xét về bất kỳ bài đăng nào] (https://stackoverflow.com/help/privileges/comment); thay vào đó, [cung cấp câu trả lời không yêu cầu làm rõ từ người hỏi] (https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-can- i-do-thay thế). - [Từ đánh giá] (/ review/low-quality-posts/16343576) – Zoe

+0

@LunarWatcher Tôi kính trọng không đồng ý - điều này _is_ một _attempt_ để trả lời ... Một nỗ lực có lẽ bị lỗi và xảy ra trong các trường hợp rất cụ thể - nhưng giải pháp là xấu không đủ lý do để xóa. –

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