java - 在另一个对话框的单击事件中创建对话框的问题

标签 java android android-alertdialog

我喜欢在另一个对话框的点击事件中显示一个对话框。我的代码在下面给出。但是它显示了一个错误- token “)”上的语法错误,;预期, token “)”上的语法错误,;预期。任何人都可以解决这个问题

final CharSequence[] PhoneModels = {"Pub Date", "Catagory", "Amount"}; final AlertDialog.Builder alt_bld = new AlertDialog.Builder(this); alt_bld.setTitle("Select An Option");

      alt_bld.setSingleChoiceItems(PhoneModels, -1, new DialogInterface.OnClickListener() {

      public void onClick(DialogInterface dialog, int item) {

      //UpdateDisplay();
          //   dialog.dismiss();

          getApplicationContext();
          if(PhoneModels[item]=="Pub Date")
               {@Override
              protected Dialog onCreateDialog(int id)
               {
                   Calendar c = Calendar.getInstance();
                   int cyear = c.get(Calendar.YEAR);
                   int cmonth = c.get(Calendar.MONTH);
                   int cday = c.get(Calendar.DAY_OF_MONTH);
                   switch (id) {
                   case DATE_DIALOG_ID:
                   return new DatePickerDialog(this,  mDateSetListener,  cyear, cmonth, cday);
                   }
                   return null;
                   }
               private DatePickerDialog.OnDateSetListener mDateSetListener = new DatePickerDialog.OnDateSetListener() {
                  // onDateSet method
                  public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
                  String date_selected = String.valueOf(monthOfYear+1)+" /"+String.valueOf(dayOfMonth)+" /"+String.valueOf(year);
                  Toast.makeText(ExampleApp.this, "Selected Date is ="+date_selected, Toast.LENGTH_SHORT).show();
                  }
                  };

              Toast.makeText(getApplicationContext(), " will be here", Toast.LENGTH_SHORT).show();
                 }
          else if(PhoneModels[item]=="Catagory")
                     {Toast.makeText(getApplicationContext(), " will not be here", Toast.LENGTH_SHORT).show();
                        }
          else
                       {Toast.makeText(getApplicationContext(), "It will be here", Toast.LENGTH_SHORT).show();
                          }
      }
      });

      AlertDialog alert = alt_bld.create();
      alert.show();

    // display UI

}

最佳答案

如果您能显示错误发生的位置(并正确缩进代码),那真的会有帮助,但这肯定看起来像您的问题之一:

if(PhoneModels[item]=="Pub Date")
{@Override
    protected Dialog onCreateDialog(int id)

您不能在 if 主体中声明方法,有点条件覆盖。

您似乎还试图在方法中声明一个私有(private)变量,这也是无效的。

老实说,很难准确理解您的代码的用途 - 在另一个内部类中创建一个匿名内部类在这方面确实无济于事。您能否将匿名内部类提取到“普通”类中(如果有帮助,可能仍然是内部类)?

另外请注意,在 Java 中使用 == 比较字符串几乎总是不正确的。它将比较引用,而不是检查字符串是否相等。

关于java - 在另一个对话框的单击事件中创建对话框的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6688987/

相关文章:

java - 我们应该什么时候关闭数据库连接

java - 将字符串转换为时间格式

android - 如何将电子邮件链接添加到布局 xml,Android

android - 延迟加载器

android - ffmpeg - avcodec_decode_audio3 总是返回 0,在 android 上使用 aac 解码

android - 警报对话框 - 出现错误

android - 使用 setSingleChoiceItems/setItems 更改 AlertDialog 中项目的背景颜色

java - 按单选按钮两次,计算两次

java - httpheader 中的编码问题导致 struts 2

java - Hibernate 查询比 MySQL 中的 native 查询慢