Android 如何在AlertDialog中调用AlertDialog?

Android 如何在AlertDialog中调用AlertDialog?,android,android-alertdialog,Android,Android Alertdialog,我有以下代码: public class Example { String sp,st; SQLiteDatabase database, database2; void func() { new AlertDialog.Builder(view.getContext()) .setIcon(android.R.drawable.ic_dialog_alert) .setTitle("Confirm") .setMessage("Are you sure?")

我有以下代码:

public class Example
{
 String sp,st;
 SQLiteDatabase database, database2;
 void func()
 {
 new AlertDialog.Builder(view.getContext())
    .setIcon(android.R.drawable.ic_dialog_alert)
    .setTitle("Confirm")
    .setMessage("Are you sure?")
    .setPositiveButton("Yes", new DialogInterface.OnClickListener()
    {
    @Override
    public void onClick(DialogInterface dialog, int which) {
      String st = editTextSt.getText().toString();
      String sp = editTextSp.getText().toString();
      database2 = new SQLiteDbHelper(this);
      database = database2.getWritableDatabase();
      ContentValues values = new ContentValues();
      values.put(SQLiteDbHelper.COLUMN_NAME_SP, sp);
      values.put(SQLiteDbHelper.COLUMN_NAME_ST, st);
      long insertId = database.insert(SQLiteDbHelper.TABLE_NAME, null, values);
      //I would like to call it here
    }})
    .setNegativeButton("No", null)
    .show();

 }
我想在上面的AlertDialog中调用此AlertDialog:

new AlertDialog.Builder(this)
                .setMessage("Saved!")
                .setNeutralButton("OK", null)
                .show();
我怎么做


如果我只是把它放在我想放的地方,我会得到一个错误,即“构造函数AlertDialog.Builder(新的DialogInterface.OnClickListener(){})未定义”。

试试这个:

new AlertDialog.Builder(Example.this)
                .setMessage("Saved!")
                .setNeutralButton("OK", null)
                .show();
public class Example extends Activity
new AlertDialog.Builder(view.getContext())
                .setMessage("Saved!")
                .setNeutralButton("OK", null)
                .show();
假设类
示例
是一个
活动
,这将起作用

new AlertDialog.Builder(Example.this)
                .setMessage("Saved!")
                .setNeutralButton("OK", null)
                .show();
public class Example extends Activity
new AlertDialog.Builder(view.getContext())
                .setMessage("Saved!")
                .setNeutralButton("OK", null)
                .show();
否则,请使用以下内容:

new AlertDialog.Builder(Example.this)
                .setMessage("Saved!")
                .setNeutralButton("OK", null)
                .show();
public class Example extends Activity
new AlertDialog.Builder(view.getContext())
                .setMessage("Saved!")
                .setNeutralButton("OK", null)
                .show();

一旦您进入ClickListener对象
内,此
将引用该对象,而不是像它在该对象外所做的活动,假设
示例
是一个可能不基于您的代码的活动

要修复它,您只需要使用另一种方式将上下文传递到构建器constructor

要创建您使用的第一个生成器,请按如下方式执行:

new AlertDialog.Builder(view.getContext())

使用
view.getContext()
获取所需的上下文。您应该能够使用第二个构建器以相同的方式完成此操作。

no,“不能在不同方法中定义的内部类中引用非最终变量视图”@JohnnyAlmi您从何处获得
视图
?试着把它做成最后一个。此外,我强烈建议您在深入Android之前,先温习一下Java编程。这是一个常见的问题,如果您多练习纯Java,您就会知道如何解决这个问题。在没有良好java基础的情况下尝试在Android上工作只会让人沮丧,另一个答案是可行的。谢谢你抽出时间!我有很好的C/C++/C#和基本的Java知识,但它有时会被卡住。我一定会提高我的Java知识!谢谢很好用!我想这是我第一次不尝试这样做。我讨厌当傻瓜。