静态变量数据在应用程序运行时第一次没有反映,并且在android中第二次反映

时间:2014-11-06 10:47:55

标签: android

我在我的项目中使用静态字符串变量for multi android中的语言应用程序.. 这些字符串值使用其默认值进行初始化  即英语语言价值.. 当用户点击更改语言选项时,我得到了  该语言的语言代码并附加该语言  代码到url,连接到服务器并获取xml格式的数据  并将获取的值分配给各自的字符串。 当用户第一次选择语言时......值是  未更改,默认的英语朗姆值显示在屏幕上.. 当用户第二次选择语言时,所有值都在变化。 当应用程序第一次运行时,会发生此问题。 我的代码是:

public class MenuScreen extends Activity {


    // TextView Elements
    TextView backup_text=null;  
    TextView restore_text=null;
    TextView terms_text =null;
    TextView  settings_text=null;
    TextView  about_text=null;
    TextView  contactus_text=null;
    TextView  exit_text=null;

    @Override
    protected void onCreate(Bundle savedInstanceState) {


        super.onCreate(savedInstanceState);

        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);  
        setContentView(R.layout.activity_menu);


    // Setting here the changed values  

        backup_text = (TextView) findViewById(R.id.tv_backup);

        backup_text.setText(Strings.BACKUP);

//Strings.BACKUP contains the changed values of language

         restore_text = (TextView) findViewById(R.id.tv_restore);
         restore_text.setText(Strings.RESTORE);

          terms_text = (TextView) findViewById(R.id.tv_terms);
         terms_text.setText(Strings.TERMS);

         settings_text = (TextView) findViewById(R.id.tv_settings);
         settings_text.setText(Strings.SETTINGS);

         about_text = (TextView) findViewById(R.id.tv_aboutus);
         about_text.setText(Strings.ABOUT);

          contactus_text = (TextView) findViewById(R.id.tv_contactus);
         contactus_text.setText(Strings.CONTACT_US);

          exit_text = (TextView) findViewById(R.id.tv_logout);
         exit_text.setText(Strings.EXIT);

1 个答案:

答案 0 :(得分:0)

如果我理解你的问题&正确的代码,该语言第一次没有更改,因为已加载 语言。

我能想到的最简单的方法是移动所有的setText代码:

about_text.setText(Strings.ABOUT);
//and all setText code

onClick或您喜欢的任何内容,因此当用户点击按钮(例如)时,文字将使用新的语言进行更改。

如果我想念你,请随意评论。