我的程序在一个活动中生成一个strings列表,然后将它传递给另一个活动,第二个活动使用字符串。
当我在第二个活动开始时打印出列表中的每个元素进行测试时,打印输出看起来是完美的。例如,如果我希望列表包含"Lemon Juice",那么它的输出是完全正确的,但是第二个活动中的逻辑仍然不能工作。如果我手动将"Lemon Juice"添加到列表中,则第二个活动中的逻辑工作正常,因此问题是接收到的列表中的字符串实际上不是"Lemon Juice"。但是:
"Lemon Juice".contains(received String),它就会变成真,如果我运行接收到的String.contains("Lemon Juice"),它会返回true,但是如果我运行接收到的String.equals("Lemon Juice"),它就会返回false。这让我很困惑。有人能想出一个可能的解释吗?为什么被转换为字符串、打印为字符串、看起来像字符串的东西不像字符串?
编辑以包括一些要求的代码:
// instance variable at top of class--list to which strings will be added for use in
// 2nd activity
private List<String> exs = new ArrayList<String>();
// get array of strings from extra from intent from first activity
String[] recExs = getIntent().getStringArrayExtra(BrowseActivity.EXS);
for (int exx = 0; exx < recExs.length; exx++) {
String curEx = (String) recExs[exx];
exs.add(curEx);
}不知何故,当我将exs传递给需要使用字符串的方法时,它不起作用,尽管如上所述,打印和调用包含等都表明,在将字符串添加到exs之前,字符串是我想要的。
发布于 2014-07-10 05:35:02
当您只发布代码的一个小片段时,就很难提供帮助。
但我猜String.contains起作用的原因,但String.equals不起作用,可能是因为字符串中有空格。在传递和接收数据时,在活动的两侧尝试String.trim。
https://stackoverflow.com/questions/20722516
复制相似问题