2010-11-11 22 views
8

Tôi đang mở một Activity sử dụng này:Đóng một hoạt động trên onCreate

startActivity(new Intent(Parent.this, Child.class)); 

Và trên đứa trẻ, tôi có mã này trên onCreate chức năng (các if chứa nhiều hơn là chỉ true, tất nhiên):

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    if (true) { 
     AlertDialog.Builder builder = new AlertDialog.Builder(this); 
     builder.setPositiveButton("OK", null); 
     builder.setTitle("Error"); 
     builder.setMessage("Connection error, please try later.") 
      .show(); 
     finishActivity(0); 
     return; 
    } 
} 

Tại sao hoạt động không đóng? Tôi nhận được hộp cảnh báo, nhưng sau đó tôi phải bấm vào nút "quay lại" để quay trở lại.

+0

Trả lời ở đây vì tôi không chắc chắn 100% về điều này, nhưng bạn đã thử thay đổi đối số setPositiveButton onClickListener đó thành một cuộc gọi tự kết thúc()? –

+0

Tại sao bạn sẽ có hoạt động chỉ để hiển thị một hộp thư? – Jason

+0

@dpk Tôi có thể làm điều đó? Tôi không chắc chắn làm thế nào tôi sẽ mã đó ... – cambraca

Trả lời

9

Thử sử dụng phương thức finish() để đóng Hoạt động.

+0

hmm đóng nó ok, nhưng nó không giữ hộp cảnh báo .. – cambraca

+1

Tôi cảm thấy ngu ngốc vì không biết về 'kết thúc()' mặc dù. Tôi làm cho nó hiển thị một thông điệp 'Toast', và nó có vẻ tốt bây giờ :) – cambraca

+0

Tốt công việc. Đi trước. :) – Mudassir

7

làm điều này trong trên tạo

if (true) { 
    AlertDialog.Builder builder = new AlertDialog.Builder(this); 
    builder.setPositiveButton("OK", null) 
      .setTitle("Error") 
      .setMessage("Connection error, please try later.") 
      .setCancelable(false) 
      .setPositiveButton("_Yes", 
        new DialogInterface.OnClickListener() { 
         public void onClick(DialogInterface dialog, int id) { 
          finish(); 
        } 
      }) 
      .show(); 
    return; 
} 

và trong AndroidManifest.xml của bạn thực hiện như sau:

<activity class="MyDialogActivity" android:theme="@android:style/Theme.Dialog"/> 

Bây giờ bạn Hoạt động sẽ bắt đầu và hiển thị Dialog. Nó cảm thấy như chỉ có hộp thoại cho người dùng. Có một hoạt động được hiển thị, nhưng nó nằm phía sau hộp thoại. Vì vậy, hiệu quả là okay. Nếu không, bạn có thể tạo Hộp thoại trong chính hoạt động đó (setcontentview).

+0

rất đẹp, tôi không biết điều này có thể được thực hiện. cảm ơn rất nhiều – cambraca

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