android - Context.getString 导致 "no such static field"

标签 android

我正在尝试从事件处理程序中的 strings.xml 文件中获取字符串,尽管我得到的是“没有这样的静态字段”。

这是我的代码:

mSearchEditText.setOnFocusChangeListener(new View.OnFocusChangeListener() {
        @Override
        public void onFocusChange(View view, boolean hasFocus) {
            Context context = view.getContext();

            if (hasFocus && mSearchEditText.getText().toString().trim() == context.getString(R.string.searchbar_address_label)) {
                mSearchEditText.setText("");
            }
            else if (!hasFocus && mSearchEditText.getText().toString().trim().isEmpty()) {
                mSearchEditText.setText(context.getString(R.string.searchbar_address_label));
            }
        }
    });

这段代码有什么问题?

谢谢

更新:此代码旨在显示 EditText 内的提示。 R.string 似乎在监听器的函数中不可用。因此,将我的问题视为“是否有一种 native 方法可以在 EditText 中显示提示而不是编写我自己的代码?”

最佳答案

使用 context.getResources().getString(R.string.searchbar_address_label);

设置提示使用android:hint="your_text" 在 xml 布局中。或者同样可以使用 edittext.sethint("text"); 以编程方式完成;

关于android - Context.getString 导致 "no such static field",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14478472/

相关文章:

Android 应用程序开发 - 直接发送电子邮件,无需 Intent

android - 适配器应该是局部变量还是实例变量?

android - 当应用程序被强制关闭或设备重新启动时,共享首选项会重置数据

几个小时后恢复应用程序时出现 Android 异常

android - 位图大小超出 VM 预算,不明白为什么

java - 签署的 3 点之间的角度,糟糕的结果

java - 为Android创建一个 Remote

Android XML 解析异常

android - 如何在 Android 上以编程方式转发(重定向)调用?

java - 安卓屏幕尺寸支持