Context.getString导致"没有这样的静态字段"

时间:2013-01-23 11:20:54

标签: 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似乎在侦听器的函数中不可用。因此,请将我的问题视为“是否有一种本地方式在EditText中显示提示而不是编写我自己的代码?”

3 个答案:

答案 0 :(得分:2)

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

用于设置提示使用android:hint="your_text" 在xml布局中。或者可以使用edittext.sethint(“text”);

以编程方式完成

答案 1 :(得分:1)

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

答案 2 :(得分:0)

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

也可能是您引用了具有相同文件名的XML,但没有这样的ID。