5

此对话框询问您是否要安装其他应用程序...因此,当单击无按钮时,它必须返回上一个屏幕

    downloadDialog.setNegativeButton(stringButtonNo,
            new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialogInterface, int i) {
                         finish();
                }
            });

这给出了错误:

未为类型 new DialogInterface.OnClickListener(){} 定义方法 finish()

我怎样才能达到我想要的???

package com.Android.barcode;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.TextView;

public class BarcodeActivity extends Activity {
    public static String upc;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        IntentIntegrator.initiateScan(this);
    }

    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        switch (requestCode) {
        case IntentIntegrator.REQUEST_CODE: {
            if (resultCode != RESULT_CANCELED) {
                IntentResult scanResult = IntentIntegrator.parseActivityResult(
                        requestCode, resultCode, data);
                if (scanResult != null) {
                    upc = scanResult.getContents();

                    Intent intent = new Intent(BarcodeActivity.this, BarcodeResult.class);
                    startActivity(intent);
                    // put whatever you want to do with the code here
/*                  TextView tv = new TextView(this);
                    tv.setText(upc);
                    setContentView(tv);*/
                }
            }
            break;
        }
        }
    }
}
4

4 回答 4

9

由于您不想从该活动创建该对话框:您有两个选择

1) 将 Intent 回调到您希望用户去的活动。

Intent intent = new Intent(getBaseContext(), theActivity.class); 
getApplication().startActivity(intent) ;

要不然

2) 为包含对话框的类创建一个构造函数。

public class ABC {
    Context iContext=null;
   public ABC(Context con){
    iContext=con;
   }
 ....

}

使用活动的上下文调用类。喜欢ABC(Cont)。然后((Activity)iContext).finish()在该类中使用以完成该活动。

于 2012-05-19T05:06:14.110 回答
6

如果您的类具有在其中分配Context的构造函数,那么您可以使用这种方式

   AlertDialog.Builder adb=new AlertDialog.Builder(context);
                adb.setTitle("Are You Sure Want To Delete?");
                adb.setPositiveButton("OK", new AlertDialog.OnClickListener() {
                    public void onClick(DialogInterface dialog, int which) {

                    }});
                adb.setNegativeButton("CANCEL", new AlertDialog.OnClickListener() {
                    public void onClick(DialogInterface dialog, int which) {
                        ((Activity) context).finish();
                    }});
                adb.show();
于 2012-05-19T05:08:38.983 回答
2

未为类型 new DialogInterface.OnClickListener(){} 定义方法 finish()

可能会出现此错误,因为DialogInterface.OnClickListener没有任何此类方法。如果你想完成你的活动,你必须使用

ActivityName.this.finish();
于 2012-05-19T04:56:55.690 回答
1

最好的解决方案是对任何类型的对话框使用对话框片段,它只会在您的活动中打开一个对话框。并在侦听器上删除此对话框。请查看以下链接:

http://developer.android.com/reference/android/app/DialogFragment.html

它也被 Android 人推荐。

于 2012-05-19T05:04:38.910 回答