2016-02-17 84 views
-2

此代碼是單擊列表視圖時彈出的上下文菜單的一部分。我試圖通過是否選中CheckBox來獲取用戶結果。問題是我創建的字符串無法解析。這個字符串怎麼解決不了?

下面是代碼:

final CheckBox input11 = (CheckBox) textEntryView2.findViewById(R.id.checkBoxResult); 

      alert2.setPositiveButton("Confirm", new DialogInterface.OnClickListener() { 
         public void onClick(DialogInterface dialog, int whichButton) { 

          String blazeIt = lvItems.getItemAtPosition(menuInfo.position).toString(); 
          String turntupheho = blazeIt.replace(" --COMPLETE", ""); 
          String evenmoreturnt = turntupheho.replace(" --INCOMPLETE", ""); 

          if (input11.isChecked()) { 
           String bigbutt = " --COMPLETE"; 
          } else { 
           String bigbutt = " -INCOMPLETE"; 
          } 

          items.set(menuInfo.position, evenmoreturnt + bigbutt); //Cannot resolve symbol 'bigbutt' 
          itemsAdapter.notifyDataSetChanged(); 
          writeItems(); 

         } 
        } 

      ); 

編輯:對不起簡單的錯誤(忘了聲明字符串);我還在學習。感謝大家的快速回復。

+9

先生,在if(input11.isChecked())塊之前聲明'String bigbutt;'。 –

+3

我希望那些不是你的實際變量名稱 –

+1

http://www.java-made-easy.com/variable-scope.html –

回答

0

現在檢查只是聲明變量的外部條件。愚蠢的錯誤。

final CheckBox input11 =(CheckBox) textEntryView2.findViewById(R.id.checkBoxResult);

   alert2.setPositiveButton("Confirm", new DialogInterface.OnClickListener() { 
          public void onClick(DialogInterface dialog, int whichButton) { 

           String blazeIt = lvItems.getItemAtPosition(menuInfo.position).toString(); 
           String turntupheho = blazeIt.replace(" --COMPLETE", ""); 
           String evenmoreturnt = turntupheho.replace(" --INCOMPLETE", ""); 
           String bigbutt=""; 
           if (input11.isChecked()) { 
            bigbutt = " --COMPLETE"; 
           } else { 
            bigbutt = " -INCOMPLETE"; 
           } 

           items.set(menuInfo.position, evenmoreturnt + bigbutt); //Cannot resolve symbol 'bigbutt' 
           itemsAdapter.notifyDataSetChanged(); 
           writeItems(); 

          } 
         } 

       ); 
0

你可以試試這個:

String bigbutt; 
if (input11.isChecked()) 
{ 
    bigbutt = " --COMPLETE"; 
} else { 
    bigbutt = " -INCOMPLETE"; 
} 
0

這是一個基本的Java問題不是一個機器人的問題,一個簡單的努力來尋找答案會產生它。

無論如何,這裏是你需要修復您的問題

final CheckBox input11 = (CheckBox) textEntryView2.findViewById(R.id.checkBoxResult); 

     alert2.setPositiveButton("Confirm", new DialogInterface.OnClickListener() { 
        public void onClick(DialogInterface dialog, int whichButton) { 

         String blazeIt = lvItems.getItemAtPosition(menuInfo.position).toString(); 
         String turntupheho = blazeIt.replace(" --COMPLETE", ""); 
         String evenmoreturnt = turntupheho.replace(" --INCOMPLETE", ""); 
         String bigbutt=""; 
         if (input11.isChecked()) { 
          bigbutt = " --COMPLETE"; 
         } else { 
          bigbutt = " -INCOMPLETE"; 
         } 

         items.set(menuInfo.position, evenmoreturnt + bigbutt); //Cannot resolve symbol 'bigbutt' 
         itemsAdapter.notifyDataSetChanged(); 
         writeItems(); 

        } 
       } 

     ); 

和字符串沒有被解決的原因代碼,因爲你如果條件的內部定義bigbutt,給它的唯一的範圍如果有條件,但是你在if條件之外使用它,這也在它的範圍之外。

0

由於Java在塊內具有局部變量的作用域,因此您需要在塊外聲明外部變量。

final CheckBox input11 = (CheckBox) textEntryView2.findViewById(R.id.checkBoxResult); 

    alert2.setPositiveButton("Confirm", new DialogInterface.OnClickListener() { 
       public void onClick(DialogInterface dialog, int whichButton) { 

        String blazeIt = lvItems.getItemAtPosition(menuInfo.position).toString(); 
        String turntupheho = blazeIt.replace(" --COMPLETE", ""); 
        String evenmoreturnt = turntupheho.replace(" --INCOMPLETE", ""); 
        String bigbutt = ""; // Declaration needs here 

        if (input11.isChecked()) { 
         bigbutt = " --COMPLETE"; 
        } else { 
         bigbutt = " -INCOMPLETE"; 
        } 

        items.set(menuInfo.position, evenmoreturnt + bigbutt); //Cannot resolve symbol 'bigbutt' 
        itemsAdapter.notifyDataSetChanged(); 
        writeItems(); 

       } 
      } 

    ); 
0

的問題是String變量的範圍內,如果/其他塊外 申報bigbutt。