2014-05-05 15 views
17

Tôi có một ứng dụng gọi một hoạt động nhiều lần từ các hoạt động khác nhau. Vì vậy, tôi cố gắng triển khai "nút quay lại" trong thanh tác vụ cho hoạt động này. Để làm im này sử dụng:Cách đặt nhiều hoạt động phụ huynh để sử dụng nút quay lại Android

switch (item.getItemId()) { 
    case android.R.id.home: 
     NavUtils.navigateUpFromSameTask(this); 
     return true; 
    default:   
     return super.onOptionsItemSelected(item); 
    } 

và:

<meta-data 
      android:name="android.support.PARENT_ACTIVITY" 
      android:value="view.TweetsIndividuoActivity" /> 

Vấn đề bây giờ, đó là i cannt thiết lập một hoạt động phụ huynh android manifest của tôi, nguyên nhân, tôi không biết ai là người phụ huynh của hoạt động này.

Giải pháp là gì?

Cảm ơn

Trả lời

31

Nó dễ dàng hơn bạn nghĩ.

switch (item.getItemId()) { 
    case android.R.id.home: 
     finish(); 
     return true; 
    default:   
     return super.onOptionsItemSelected(item); 
} 

Phương thức finish() sẽ hủy hoạt động của bạn và hiển thị hoạt động khởi động. Đó là những gì bạn muốn nếu tôi hiểu bạn đúng.

Giải pháp hiện tại của bạn là dành cho các trường hợp khi bạn muốn quay lại cùng một bậc cha mẹ mỗi lần, ví dụ: Ứng dụng Gmail thực hiện điều đó. Khi bạn mở email từ thông báo và sau đó nhấn nút hành động trở lại, nó sẽ không điều hướng trở lại màn hình HOME nhưng nó sẽ hiển thị cho bạn hộp thư đến Gmail.

+2

Cảm ơn! Nhưng nếu cách này, công trình, tôi không hiểu tại sao sử dụng: NavUtils.navigateUpFromSameTask (điều này); –

+2

Nó có nghĩa là cho những gì tôi đã viết trong phần cuối của câu trả lời của tôi. Các hoạt động đang chạy trong các nhiệm vụ. Nếu bạn mở một hoạt động thuộc về một nhiệm vụ khác, bạn phải lựa chọn: 1. quay lại hoạt động hiển thị trước đó; đó là những gì nút quay lại không 2. quay trở lại hoạt động trước đó về nhiệm vụ hiện tại. Đọc http://developer.android.com/guide/components/tasks-and-back-stack.html để được giải thích chi tiết. –

+0

Ughhh Tôi đã bị một người nào đó sử dụng Google Util sáng bóng (NavUtils.navigateUpFromSameTask (this);) ... – DoctorD

6
@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    int id = item.getItemId(); 
    if (id == android.R.id.home) { 
     onBackPressed(); 
     return true; 
    } 
    return super.onOptionsItemSelected(item); 

} 

Bạn sẽ luôn luôn quay trở lại hoạt động từ mà bạn đã đưa ra những hoạt động mới.

Không cần sử dụng mã bên dưới.

<meta-data 
     android:name="android.support.PARENT_ACTIVITY" 
     android:value="view.TweetsIndividuoActivity" /> 
Các vấn đề liên quan