Android txtView1.getText().Equals(R.strings.valueOfTextView) 总是求值为 false
Android txtView1.getText().Equals(R.strings.valueOfTextView) always evaluate to false
不确定我做错了什么,但我尝试比较
这样的字符串
boolean state = ((TextView) v).getText().toString().trim().equals(R.string.[some-value]);
这总是评估为假,但当我调试时,(TextView v).getText() 的输出值是我想要比较的正确值。我也试过了
boolean state = ((TextView) v).getText().equals(R.string.[some-value]);
如前所述,当我调试时,我可以看到 getText() 返回的值与我在 strings.xml 中为 [some-value] 定义的值匹配。
我可以通过比较所单击的 TextView 的 ID 来解决此问题。但我想知道为什么上面的 equals 不起作用。任何帮助表示赞赏。
试试这个..
boolean state = ((TextView) v).getText().equals(getString(R.string.[some-value]));
R.string.[some-value]
是一个整数值。
你应该得到第一个字符串资源作为
((TextView) v).getText().toString().trim().equalsIgnoreCase(context.getString(R.string.[some-value]))
您应该使用 getString()
作为您的字符串资源。
((TextView) v).getText().toString().trim().equals(getString(R.string.[some-value]))
要阅读 string from resources 使用 mContext.getResources().getString(R.string.[some-value])
所以你的代码应该是
boolean state = ((TextView) v).getText().toString().trim().equals(mContext.getResources().getString(R.string.[some-value]));
@Stephan
你有什么错
你不见了getString()
boolean state = ((TextView) v).getText().toString().equals(getString(R.string.[Your_Sting]));
public final String getString (int resId, Object... formatArgs)
Returns a localized formatted string from the application's package's
default string table, substituting the format arguments as defined in
Formatter and format(String, Object...)
试试这个方法,希望有用
不确定我做错了什么,但我尝试比较
这样的字符串boolean state = ((TextView) v).getText().toString().trim().equals(R.string.[some-value]);
这总是评估为假,但当我调试时,(TextView v).getText() 的输出值是我想要比较的正确值。我也试过了
boolean state = ((TextView) v).getText().equals(R.string.[some-value]);
如前所述,当我调试时,我可以看到 getText() 返回的值与我在 strings.xml 中为 [some-value] 定义的值匹配。
我可以通过比较所单击的 TextView 的 ID 来解决此问题。但我想知道为什么上面的 equals 不起作用。任何帮助表示赞赏。
试试这个..
boolean state = ((TextView) v).getText().equals(getString(R.string.[some-value]));
R.string.[some-value]
是一个整数值。
你应该得到第一个字符串资源作为
((TextView) v).getText().toString().trim().equalsIgnoreCase(context.getString(R.string.[some-value]))
您应该使用 getString()
作为您的字符串资源。
((TextView) v).getText().toString().trim().equals(getString(R.string.[some-value]))
要阅读 string from resources 使用 mContext.getResources().getString(R.string.[some-value])
所以你的代码应该是
boolean state = ((TextView) v).getText().toString().trim().equals(mContext.getResources().getString(R.string.[some-value]));
@Stephan
你有什么错
你不见了getString()
boolean state = ((TextView) v).getText().toString().equals(getString(R.string.[Your_Sting]));
public final String getString (int resId, Object... formatArgs)
Returns a localized formatted string from the application's package's default string table, substituting the format arguments as defined in Formatter and format(String, Object...)
试试这个方法,希望有用