2010-11-11 2 views
8

Я открытие Activity с помощью этого:Закрытие деятельности на OnCreate

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

А на ребенке, у меня есть этот код на функции onCreate (if содержит больше, чем просто true, конечно):

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; 
    } 
} 

Почему деятельность не закрывается? Я получаю окно предупреждения, но затем я должен нажать кнопку «Назад», чтобы вернуться.

+0

Ответ на этот вопрос, поскольку я не уверен в этом на 100%, но попытался ли вы изменить аргумент setPositiveButton onClickListener на тот, который вызывает функцию finish()? – 2010-11-11 05:25:04

+0

Почему у вас есть активность, чтобы показать окно сообщения? – Jason

+0

@dpk Я могу это сделать? Я не уверен, как бы я это кодировал ... – cambraca

ответ

9

Попробуйте использовать метод finish() для закрытия Activity.

+0

hmm, который закрывает его нормально, но он не сохраняет поле предупреждения. – cambraca

+1

Я действительно чувствую себя глупо, потому что не знаю о 'finish()' хотя. Я заставил его показать сообщение «Toast», и теперь он выглядит нормально :) – cambraca

+0

Хорошая работа. Преуспевать. :) – Mudassir

7

сделать это в на создание

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; 
} 

и в ваших AndroidManifest.xml сделайте следующее:

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

Теперь активность начнет и показать диалог. Похоже, есть только диалог для пользователя. Отображается действие, но оно находится за диалогом. Таким образом, эффект в порядке. В противном случае вы можете создать диалог в самой операции (setcontentview).

+0

Очень приятно, я не знал, что это можно сделать. большое спасибо – cambraca

Смежные вопросы