我正在学习如何使用手势构建器来识别手势并在开发中使用它们。
这是我的代码片段:
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,但是我无法弄清楚为什么它会这样做呢?
它识别第一秒的手势if(得分> 0.1)但不是一击。
知道为什么吗?
答案 0 :(得分:1)
不将Strings
与==
进行比较;这很可能是你的问题。要比较Strings
,请使用.equals()
方法。,又名:if (s.equals(prediction.name))
简而言之,==
会比较引用,而.equals()
实际上会比较Strings
的内容。我会详细介绍,但许多主题已经涵盖了for example。