2010-11-11 35 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 2010-11-11 05:41:45

+0

@dpk我能做到吗?我不知道如何编码... – cambraca 2010-11-11 05:42:18

回答

9

尝试使用finish()方法关闭活动。

+0

嗯,它关闭它确定,但它不保留警告框.. – cambraca 2010-11-11 04:50:24

+1

虽然我不知道'finish()',但我确实感到愚蠢。我做了一个'Toast'的信息,现在看起来很好:) – cambraca 2010-11-11 04:54:00

+0

干得好。前进。 :) – Mudassir 2010-11-11 04:56:03

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 2010-11-12 17:54:06