我可以使用覆盖变量时了解AndroidJava

我可以使用覆盖变量时了解AndroidJava,第1张

概述加载应用程序时,我有一个从共享首选项中获取的变量.我首先初始化变量protectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);finalStringcamera_type=booth_preferences.getString("camera_key","back");然后下线,我得到

加载应用程序时,我有一个从共享首选项中获取的变量.

我首先初始化变量

 protected voID onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    final String camera_type = booth_preferences.getString("camera_key", "back");

然后下线,我得到那个变量并对其进行处理

if(camera_type.equals("front")){        //do something} else if(camera_type.equals("ext")){        //do something} else {        //do something}

现在,在该if语句之后,我有一个onclick侦听器,该监听器应该更改和更新该首选项.

camera_button_front.setonClickListener(new VIEw.OnClickListener() {    public voID onClick(VIEw v) {        //do something        edit_preferences.putString(camera_key, "front").commit();    }});camera_button_back.setonClickListener(new VIEw.OnClickListener() {    public voID onClick(VIEw v) {        //do something        edit_preferences.putString(camera_key, "back").commit();    }});camera_button_ext.setonClickListener(new VIEw.OnClickListener() {    public voID onClick(VIEw v) {        //do something        edit_preferences.putString(camera_key, "ext").commit();    }});

但是,当我尝试更改变量camera_type时,出现错误,提示“无法为最终变量’camera_type’赋值”.

camera_button_ext.setonClickListener(new VIEw.OnClickListener() {    public voID onClick(VIEw v) {        //do something        edit_preferences.putString(camera_key, "ext").commit();        camera_type = "ext";    }});

我曾经在onclick之后恢复过该变量,希望它会完全覆盖该变量.

camera_button_ext.setonClickListener(new VIEw.OnClickListener() {    String camera_type;    public voID onClick(VIEw v) {        //do something        edit_preferences.putString(camera_key, "ext").commit();        camera_type = "ext";    }});

如果要删除最终版本,则无法在if语句中使用该变量.

我是Java的新手,所以这应该是一个简单的答案,我只是不确定我在做哪种错误组合.

解决方法:

您应该将变量设为非最终字段.然后,您可以在onClick(以及该类的所有其他方法)中使用它,也可以根据需要重新分配它.

private String camera_type; // member variableprotected voID onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    camera_type = booth_preferences.getString("camera_key", "back");
总结

以上是内存溢出为你收集整理的我可以使用/覆盖变量时了解Android / Java全部内容,希望文章能够帮你解决我可以使用/覆盖变量时了解Android / Java所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1090167.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存