【问题标题】:Android, simply view question about view resetAndroid,简单查看关于视图重置的问题
【发布时间】:2011-06-04 09:33:54
【问题描述】:

我的活动中有一个按钮,当您单击该按钮时,会针对其文本标签运行 if 语句;

if(BTN_1.getText()=="firsttext"){
    //do some stuff, then...
    BTN_1.setText("secondtext");
}else if(BTN_1.getText()=="secondtext"){
    //do other stuff, then...
    BTN_1.setText("firsttext");
}

首先,如果我点击主页按钮并返回桌面,然后点击返回到我的应用程序,则视图已重置其自身;如果我按下按钮并使其处于按钮文本为“secondtext”的状态,当我返回我的应用程序时显示“firsttext”,我怎样才能停止我的应用程序的视图像这样刷新它的自我?

其次,在我的 XML 布局下,我定义了按钮文本;安卓:文本=“第一个文本” 但这实际上与我上面的 if 语句不匹配,在这个应用程序的 onCreate 下我有: BTN_CONNECT.setText("Connect"); 但是视觉上按钮的文字是一模一样的,为什么不匹配呢?

感谢阅读:)

【问题讨论】:

    标签: android button view reset


    【解决方案1】:

    我从哪里开始?

    • 字符串比较需要使用equals(),而不是==
    • 字符串比较以检查您的状态是否不好。使用整数/枚举来管理您的状态。
    • 根据您希望状态持续多长时间,您可以在 Activity.saveInstanceState() 中执行此操作(因此,如果您改变方向,它将持续存在),或者如果您希望它永远持续存在,则可以在 SharedPreferences 中执行。李>
    • 不要对 android:text 使用硬编码字符串,使用资源,这样你就可以翻译它们。
    • 我不明白你的最后一点。

    【讨论】:

    • +1 表示“我从哪里开始”。我也是这样开始回答的。
    • 感谢您的回复 EboMike。我已更改为使用 equals(),感谢您指出这一点,并且我也更改为使用字符串资源而不是硬编码值。在快速谷歌之后,我看到了我在这里犯的错误,所以再次感谢。我有一个问题;我已将我的 android:text 定义为“@string/mystr”。在我的主类下,我可以声明一个字符串 strMine 并使用它; strMine = getString(R.string.mystr);但是,如果我更改 strMine,这不会反映在我的 android:text 设置为“@string/mystr”的按钮上,如何链接这些值?
    • 忘了说,mystr 是一个声明的字符串资源,我没有错过 :)
    • 如果你说button.setText(R.string.mystr),按钮的字符串应该变成那个字符串,除非你的代码有什么奇怪的地方。
    • @javano:你对资源文件有错误的想法。诸如strings.xml(以及其中的字符串)之类的文件仅用于在设计时进行编辑,而不是在运行时进行编辑。当您在布局文件中使用 android:text:"@string/myStr" 时,您只需设置按钮的初始(默认)文本。如果您在代码中使用类似 button.setText(strMine) 的内容,然后更改 strMine,则按钮的文本不会自动更新……您需要再次调用 button.setText(strMine)。糟糕,EboMike 在我打字的时候找到了它。
    猜你喜欢
    • 1970-01-01
    • 2011-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-30
    • 1970-01-01
    • 2011-09-21
    • 1970-01-01
    相关资源
    最近更新 更多