有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

安卓编译java变量错误

我正在尝试通过一个小的添加来构建安卓,但我给了我以下错误:

packages/apps/Settings/src/com/安卓/settings/cyanogenmod/ProgressBar.java:144: cannot find symbol symbol : variable ram_bar_button_reset location: class com.安卓.settings.R.string menu.add(0, MENU_RESET, 0, R.string.ram_bar_button_reset) ^ packages/apps/Settings/src/com/安卓/settings/cyanogenmod/ProgressBar.java:162: cannot find symbol symbol : variable ram_bar_reset location: class com.安卓.settings.R.string alertDialog.setTitle(R.string.ram_bar_reset);

当我打开带有相应行的文件时:

@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) 个答案

  1. # 1 楼答案

    从字符串中获取字符串值。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>
    

    编辑:根据要求进行最终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();    
    }