我正在尝试从事件处理程序中的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中显示提示而不是编写我自己的代码?”
答案 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。