我正在学习如何使用手势生成器来识别手势并在开发中使用它们。
这是我的代码的片段:
public void onGesturePerformed(GestureOverlayView overlay, Gesture gesture) {
ArrayList<Prediction> predictions = oLib.recognize(gesture);
// We want at least one prediction
final EditText et_Text = (EditText) findViewById(R.id.editText1);
if (predictions.size() > 0) {
Prediction prediction = predictions.get(0);
if (prediction.score > 0.1) { // do the work
//Toast.makeText(this, prediction.name, Toast.LENGTH_SHORT)
//.show();
String s ="o";
if (prediction.name == s) {
et_Text.setText("o");
Toast.makeText(this, "TEST", Toast.LENGTH_SHORT)
.show();
}
}
}
}
我有一个称为o的手势,想法是当我做出该手势时,它将在EditText中键入o,但我不知道为什么它只是这样做了?
如果(得分> 0.1),它会在第一秒内识别手势,但一次打击就不会识别。
知道为什么吗?
最佳答案
不要将Strings
与==
进行比较;那很可能是你的问题。要比较Strings
,请使用.equals()
方法。又名:if (s.equals(prediction.name))
简而言之,==
比较引用,而.equals()
实际上比较Strings
的内容。我将进行更详细的介绍,但是许多线程for example对此进行了介绍。