Android 变量未解析为字符串
在我的onActivityResult()方法中,我有一个如下的切换条件:Android 变量未解析为字符串,android,Android,在我的onActivityResult()方法中,我有一个如下的切换条件: if (resultList.getText().toString().toLowerCase().contains("Hi")){ Random random = new Random(); int numberOfMethods = 4; switch(random.nextInt(numberOfMethods)) {
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
?是你的打字错误吗?