【问题标题】:How to end an Activity with a dialog box如何用对话框结束 Activity
【发布时间】:2014-05-02 14:12:51
【问题描述】:

我正在编写一个简单的游戏,现在,我希望我的应用程序在倒计时结束时显示一个对话框。我尝试了该代码(见下文),但它不起作用:

protected void alertbox()
   {
   new AlertDialog.Builder(this)
      .setMessage("You've scored " + score + " points!")
      .setTitle("Congatulations!")
      .setCancelable(false)
      .setNeutralButton(android.R.string.cancel,
         new DialogInterface.OnClickListener() {
         public void onClick(DialogInterface dialog, int whichButton){}
         ButtonActivity.this.finish();
         })
      .show();
   }

【问题讨论】:

  • 点击“确定”时致电finish()
  • “但它不起作用” - 这是什么意思?它崩溃了吗?什么都没发生?等?,发布堆栈跟踪

标签: android android-activity dialog


【解决方案1】:

试试这个:

new AlertDialog.Builder(context).setMessage("Congratulations! You scored " + score + " points!")
.setPositiveButton("Ok", new DialogInterface.OnClickListener()
{
    @Override
    public void onClick(DialogInterface dialog, int which)
    {
        finish();
    }
}).show();

【讨论】:

    【解决方案2】:

    这样做:

        final Dialog dialog = new Dialog(ButtonActivity.this);
        dialog.setContentView(R.layout.dialog);
        dialog.setTitle("Dialog Title");
        TextView text = (TextView) dialog.findViewById(R.id.text);
        text.setText("Congratulations! You scored " + score + " points!");
        Button dialogButton = (Button) dialog.findViewById(R.id.dialogButtonOK);
    
        dialogButton.setOnClickListener(new OnClickListener() {
           @Override
           public void onClick(View v) {
            dialog.dismiss();
            ButtonActivity.this.finish();
           }
        });
        dialog.show();
    

    dialog.xml:

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" >
    
    
    
        <TextView
            android:id="@+id/text"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:textColor="#FFF" 
            />
    
         <Button
            android:id="@+id/dialogButtonOK"
            android:layout_width="100px"
            android:layout_height="wrap_content"
            android:text="Ok"
            android:layout_marginTop="5dp"
            android:layout_marginRight="5dp"
            android:layout_below="@+id/text"
            />
    
    </RelativeLayout>
    

    【讨论】:

      【解决方案3】:
      protected void alertbox(){
          new AlertDialog.Builder(this)
        .setMessage("You've scored " + score + " points!")
        .setTitle("Congatulations!")
        .setCancelable(false)
        .setNeutralButton(android.R.string.cancel,
           new DialogInterface.OnClickListener() {
           public void onClick(DialogInterface dialog, int whichButton){
               Intent intent =new Intent(getApplicationContext(), NextActivityClassName.class);
               intent.putExtra("ID",score);
               startActivity(intent);
               finish();
           }
        }).show();
      

      }

      在下一个Activity中使用:

       int scoreValue= getIntent().getIntExtra("ID", defaultValueIntValue);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-09-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多