0

我有这个代码:

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(){}) 未定义”的错误。

4

2 回答 2

1

试试这个

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

假设该类Example是一个Activity.

public class Example extends Activity

否则,使用这个

new AlertDialog.Builder(view.getContext())
                .setMessage("Saved!")
                .setNeutralButton("OK", null)
                .show();
于 2013-04-10T21:14:05.317 回答
0

一旦您进入 ClickListener 对象this,它将引用该对象,而不是像它在外面所做的那样Example的活动,假设它可能不是基于您的代码的活动。

要修复它,您只需要使用不同的方式来获取上下文以传递给您的构建器构造函数。

要创建您使用的第一个构建器,您可以这样做:

new AlertDialog.Builder(view.getContext())

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

于 2013-04-10T21:16:26.153 回答