2011-07-14 24 views
1

我喜歡在另一個對話框的單擊事件中顯示一個對話框。我的代碼如下所示。但它顯示一個錯誤 - 令牌上的語法錯誤「)」 ,;預期的,令牌上的語法錯誤「)」,; expected.Can任何人清除此問題在另一個對話框的單擊事件中創建對話框時出現的問題

最終的CharSequence [] PhoneModels = { 「出版日期」, 「產品類別」, 「金額」}; 最終AlertDialog.Builder alt_bld = new AlertDialog.Builder(this); alt_bld.setTitle(「選擇一個選項」);

 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 

} 

回答

1

這將真正幫助,如果你想顯示哪裏發生錯誤(和正確縮進的代碼),但是這肯定看起來像你的問題一個

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

您不能在if正文中聲明方法,這種排序有條件覆蓋。

你似乎也試圖在一個方法中聲明一個私有變量,這也是無效的。

很難理解你的代碼到底要做什麼,說實話 - 在另一個內部創建一個匿名內部類實際上並不能幫助實現這一目標。你可以提取你的匿名內部類到「普通」類(如果有幫助,可能仍然是內部類)?

此外請注意,比較在Java中使用==的字符串幾乎總是不正確的。它將比較引用而不是檢查字符串是否相等。

+0

你是絕對正確的,那是我在code.But錯誤是有任何其他方式在另一個警報對話框中單擊事件來顯示日期選擇器警告對話框? –

+0

@bejoy:無論何時你使用匿名內部類,都有其他選擇。這是不是很清楚你想要做什麼,或爲什麼你有無效的Java作爲試圖實現它... –

+0

我生成一個警告對話框3 radiobuttons.If用戶選擇pubdate,我想顯示一個日期選擇器對話框,並根據該日期我想要做另一個過程。 –

0

您正試圖在塊中定義一個方法。這在Java中是不可能的。

參見:

if(PhoneModels[item]=="Pub Date") 
{ 
    @Override 
    protected Dialog onCreateDialog ... // this is not allowed! 
+0

Java,而不是JAVA。 –

+0

對不起。現在太早了; o) – powerMicha

+0

@Jon爲什麼不是JAVA? –

相關問題