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...)

试试这个方法,希望有用