错误:构造函数Object(EditText)未定义

时间:2014-07-20 12:34:15

标签: android

我在这个方法中遇到错误:“构造函数Object(EditText)未定义”

private void setupAlert()
    {
        Log.d(TAG, "setupAlert()");
        LayoutInflater li = LayoutInflater.from(this);
        View promptsView = li.inflate(R.layout.emaildialog, null);
        AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this);
        alertDialogBuilder.setView(promptsView);
        final EditText userInput = (EditText)promptsView.findViewById(R.id.editTxtEmailAddress);
        alertDialogBuilder.setCancelable(false).setPositiveButton("OK", new DialogInterface.OnClickListener()
        {
            public void onClick(DialogInterface dialog, int id)
            {
                updatePref(userInput.getText().toString());
                Log.d(MainActivity.TAG, "setupAlert: getPreference()=" + getPreference());
                takeSnapNow();
            }
        });
        AlertDialog alertDialog = alertDialogBuilder.create();
        alertDialog.show();
    }

protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.colour_selector);
        Log.d(TAG, "onCreate: getPreference()=" + getPreference());
        if (getPreference().equals("")) {
            setupAlert();
            takeSnapNow();
        } else {
            takeSnapNow();
        }
    }

private void takeSnapNow()
    {
        String fileName = "TempImage.jpg";
        ContentValues values = new ContentValues();
        values.put(MediaStore.Images.Media.TITLE, fileName);
        values.put(MediaStore.Images.Media.DESCRIPTION, "Captured by XYZ app");
        imageUri = getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
        Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
        intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);
        startActivityForResult(intent, CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE);
    }

请建议解决此错误。

编辑:通过删除其他人建议的UserInput来纠正上述错误。但是仍然没有显示alertDialog。逻辑是最初在onCreate中检查sharedpref,如果没有找到,则调用setupAlert()方法从用户获取电子邮件ID。 有线索吗?更改了上述代码段中更新的代码。

2 个答案:

答案 0 :(得分:1)

DialogInterface.OnClickListener不会将EditText作为构造函数参数,您不需要这样做!您可以使用userInput而不将其传递给DialogInterface.OnClickListener,只需按以下方式使用

alertDialogBuilder.setCancelable(false).setPositiveButton("OK", new DialogInterface.OnClickListener() {

答案 1 :(得分:0)

为什么使用“ new DialogInterface.OnClickListener(userInput)”?

只需使用新的DialogInterface.OnClickListener()

即可