2014-08-27 7 views
0

я пытаюсь построить андроида, с небольшим дополнением, но я дал мне следующие ошибки:компиляции Java переменная ошибка

Пакеты/Приложения/Настройки/SRC/COM/Android/Настройки/CyanogenMod/ProgressBar .java: 144: не может найти символ символов: переменная расположение ram_bar_button_reset: класс com.android.settings.R.string menu.add (0, MENU_RESET, 0, R.string.ram_bar_button_reset) ^ пакеты/приложений/настроек /src/com/android/settings/cyanogenmod/ProgressBar.java:162: не может найти символ символа: переменная ram_bar_reset местоположение: класс com.android.settings. R.string alertDialog.setTitle (R.string.ram_bar_reset);

, когда я открыть файл с correspondending линиями:

@Override 
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) 
{  
menu.add(0, MENU_RESET, 0, 
R.string.ram_bar_button_reset) 
    .setIcon(R.drawable.ic_settings_backup) 
    .setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); 
} 

и:

private void resetToDefault() 
{  
    AlertDialog.Builder alertDialog = new AlertDialog.Builder(getActivity()); 
    alertDialog.setTitle(R.string.ram_bar_reset); 
    alertDialog.setMessage(R.string.progressbar_reset_message); 
    alertDialog.setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() 
{   
public void onClick(DialogInterface dialog, int id) 
{ 
    ProgressBarColorReset();    
}  
});   

    alertDialog.setNegativeButton(R.string.cancel, null); 
    alertDialog.create().show();  
} 

кто-то может сказать, что мне делать?

+1

Дважды проверьте скобки и кронштейны – Yann

+0

они все правильно, как насколько я знаю – OwnDroid

+0

Посмотрите на второй раздел кода, который вы вставили здесь, есть несоответствующая фигурная скобка в resetToDefault() и последняя секция ион просто неправильный/неполный. – Yann

ответ

1

Чтобы получить строковое значение из string.xml, вы должны использовать: Reference

String myStr = getResources().getString(R.string.myStringID); 

В вашем случае попробуйте

getResources().getString(R.string.ram_bar_reset); 

alertDialog.setTitle(getResources().getString(R.string.ram_bar_reset)); 
alertDialog.setMessage(getResources().getString(R.string.progressbar_reset_message)); 
alertDialog.setPositiveButton(getResources().getString(R.string.ok), new DialogInterface.OnClickListener() ; 

Убедитесь, ваш res\values\strings.xml содержит строки с именами, определенными, как показано ниже:

<resources> 
    <string name="ram_bar_reset">Reset RAM Bar</string> 
    <string name="progressbar_reset_message">Reset Progress Bar</string> 
    <string name="ok">OK</string> 
</resources> 

EDIT: Final Java по запросу:

КОД БЛОК 1:

@Override 
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) 
{  
menu.add(0, MENU_RESET, 0, 
getResources().getString(R.string.ram_bar_button_reset)) // <---- Changed Here 
    .setIcon(getResources().getDrawable(R.drawable.ic_settings_backup)) // <-- Changed Here 
    .setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); 
} 

КОД БЛОК 2:

private void resetToDefault() 
{  
    AlertDialog.Builder alertDialog = new AlertDialog.Builder(getActivity()); 
    alertDialog.setTitle(getResources().getString(R.string.ram_bar_reset)); // <---- Changed Here 
    alertDialog.setMessage(getResources().getString(R.string.progressbar_reset_message)); // <---- Changed Here 
    alertDialog.setPositiveButton(getResources().getString(R.string.ok), // <---- Changed Here 
       new DialogInterface.OnClickListener() 


    {   
    public void onClick(DialogInterface dialog, int id) 
    { 
     ProgressBarColorReset();    
    }  
    }); 



    alertDialog.setNegativeButton(getResources().getString(R.string.cancel),// <---- Changed Here 
            null); 
    alertDialog.create().show();  
} 
+0

спасибо за этот ответ, можете ли вы создать новую копию правильных строк java для меня, все на месте? – OwnDroid

+0

@OwnDroid: см. Раздел «Мой раздел». Явные линии включены. –

+0

спасибо, я ценю это ... – OwnDroid

Смежные вопросы