3

我试图从事件处理程序中的 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 似乎在侦听器的函数中不可用。因此,将我的问题视为“是否有一种本地方式可以在 EditText 中显示提示而不是编写我自己的代码?”

4

3 回答 3

2

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

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

于 2013-01-23T11:22:20.807 回答
1

在这种情况下,重建项目并从设备上卸载应用程序可能会有所帮助。它对我有用。

于 2013-11-08T14:38:44.803 回答
0

您可能在所有项目 XML 中有相同的 id,这是被禁止的。

也可能是您引用了具有相同文件名的 XML 并且没有这样的 id。

于 2018-09-12T15:29:30.300 回答