我喜欢在另一个对话框的点击事件中显示一个对话框。我的代码在下面给出。但是它显示了一个错误- 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/