如何在AlertDialog中调用AlertDialog?

时间:2013-04-10 21:09:52

标签: 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?")
    .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(new DialogInterface.OnClickListener(){})未定义”。

2 个答案:

答案 0 :(得分:1)

试试这个

new AlertDialog.Builder(Example.this)
                .setMessage("Saved!")
                .setNeutralButton("OK", null)
                .show();

假设班级ExampleActivity

,这将有效 。

<强>即

public class Example extends Activity

否则,请使用此

new AlertDialog.Builder(view.getContext())
                .setMessage("Saved!")
                .setNeutralButton("OK", null)
                .show();

答案 1 :(得分:0)

一旦你进入ClickListener对象this将引用该对象,而不是它之外的活动,假设Example是一个Activity,它可能不是基于你的代码

要修复它,您只需使用不同的方法将上下文传递给构建器构造函数。

创建你使用的第一个构建器,你这样做:

new AlertDialog.Builder(view.getContext())

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