Android 变量未解析为字符串

Android 变量未解析为字符串,android,Android,在我的onActivityResult()方法中,我有一个如下的切换条件: if (resultList.getText().toString().toLowerCase().contains("Hi")){ Random random = new Random(); int numberOfMethods = 4; switch(random.nextInt(numberOfMethods)) {

在我的onActivityResult()方法中,我有一个如下的切换条件:

 if (resultList.getText().toString().toLowerCase().contains("Hi")){

             Random random = new Random();
             int numberOfMethods = 4;

             switch(random.nextInt(numberOfMethods)) {
                 case 0: 
                     String txthow = "Hi "+ data.toString()";
                     tts.speak(txthow, TextToSpeech.QUEUE_FLUSH, null);
                     break;
                 case 1: 
                     String txthowdue = "How are you "+data.toString()+"?";
                     tts.speak(txthowdue, TextToSpeech.QUEUE_FLUSH, null);
                     break;

             }
当我的TTS重复
数据
值时,它会重复类似
intent\00n
或其他不正确的内容,因为该值可能是一个名称
David
。我还声明了
私有字符串数据但没有更改。

来自:

公共字符串toString()

返回的字符串表示形式 对象通常,toString方法返回一个 “文本表示”此对象。结果应该是一个简洁但不复杂的过程 易于阅读的信息表示法。它是 建议所有子类重写此方法。toString 类对象的方法返回一个字符串,该字符串由 对象是其实例的类,符号为“@”, 和的哈希代码的无符号十六进制表示形式 对象换句话说,此方法返回一个字符串,该字符串等于 价值:

getClass().getName()+'@'+Integer.toHexString(hashCode())

这意味着
toString()
将返回
对象的字符串表示形式。在这种情况下,它是一个
Intent
对象。可能返回的是一个带有
类的名称及其在内存中的位置的字符串


您要做的是使用其
getX()

之一从
Intent
获取所需的值。请共享所有相关代码。您的意思是什么?这是代码的一部分。如果结果列表包含“Hi”,则有两种可能的答案<代码>数据
是一个可以从编辑文本中插入的变量。如果我在编辑文本
david
中写入TTS,它应该回答例如
Hi david
。数据通常是意图的名称。onActivityResult的第三个参数。你为什么期待一些不同的东西?哦,我的错!!!我只更改了变量名,对吗?出于好奇,请查看语句
resultList.getText().toString().toLowerCase().contains(“Hi”)
。在这种情况下,
toLowerCase()
返回一个包含所有小字符的
字符串。但是您将它与字符串
Hi
进行比较,其中第一个字母
H
是大写字母。那么这个条件将如何
true
?是你的打字错误吗?