Java 如何为AddOnTesturePerformedListener创建单独的类
所有这些都是我的密码Java 如何为AddOnTesturePerformedListener创建单独的类,java,android,android-ndk,Java,Android,Android Ndk,所有这些都是我的密码 private GestureLibrary gLib; private static final String TAG = "com.hascode.android.gesture"; protected static final TextWatcher watcher = null; private EditText et1; private EditText et2, et; // int dec = et.getText().toString().length(
private GestureLibrary gLib;
private static final String TAG = "com.hascode.android.gesture";
protected static final TextWatcher watcher = null;
private EditText et1;
private EditText et2, et;
// int dec = et.getText().toString().length()-1;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
et1 = (EditText) findViewById(R.id.editText1);
et2 = (EditText) findViewById(R.id.editText2);
et = et1;
gLib = GestureLibraries.fromRawResource(this, R.raw.gestures);
// glip1 = GestureLibraries.fromRawResource(this, R.raw.gestures1);
if (!gLib.load()) {
Log.w(TAG, "could not load gesture library");
finish();
}
GestureOverlayView gestures = (GestureOverlayView) findViewById(R.id.gestures);
gestures.addOnGesturePerformedListener(handleGestureListener);
}
/**
* our gesture listener
*/
private OnGesturePerformedListener handleGestureListener = new OnGesturePerformedListener() {
@Override
public void onGesturePerformed(GestureOverlayView gestureView,
Gesture gesture) {
ArrayList<Prediction> predictions = gLib.recognize(gesture);
// ArrayList<Prediction> predictions1 = glip1.recognize(gesture);
Toast.makeText(gestureinput.this,
predictions.get(0).name + " " + predictions.get(0).score,
Toast.LENGTH_SHORT).show();
// one prediction needed
if (predictions.size() > 0 && predictions.get(0).score > 2.0) {
String prediction = predictions.get(0).name;
// checking prediction
if (prediction.equals("A")) {
// and action
et.append("A");
// et.getText().insert(et.getSelectionStart(), "A");
}
}
}
};
private-gesturebrary-gLib;
私有静态最终字符串TAG=“com.hascode.android.手势”;
受保护的静态最终TextWatcher watcher=null;
私人编辑文本et1;
私人编辑文本et2,et;
//int dec=et.getText().toString().length()-1;
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
et1=(EditText)findViewById(R.id.editText1);
et2=(EditText)findViewById(R.id.editText2);
et=et1;
gLib=GestureLibraries.fromRawResource(this,R.raw.bigests);
//glip1=GestureLibraries.fromRawResource(this,R.raw.gestures1);
如果(!gLib.load()){
Log.w(标记“无法加载手势库”);
完成();
}
GestureOverlayView手势=(GestureOverlayView)findViewById(R.id.birters);
手势。添加测试性能监听器(HandleTestureListener);
}
/**
*我们的手势听众
*/
private OnTesturePerformedListener HandleTestureListener=新建OnTesturePerformedListener(){
@凌驾
已执行的测试的公共无效(GestureOverlayView gestureView,
(手势){
ArrayList预测=油嘴滑舌的识别(手势);
//ArrayList predictions1=glip1.识别(手势);
Toast.makeText(gestureinput.this,
预测。获取(0)。名称+“”+预测。获取(0)。分数,
吐司。长度(短)。show();
//需要一个预测
if(predictions.size()>0&&predictions.get(0).score>2.0){
字符串预测=预测.get(0).name;
//检验预测
if(预测等于(“A”)){
//和行动
等附加(“A”);
//et.getText().insert(et.getSelectionStart(),“A”);
}
}
}
};
}
现在我需要为手势监听器创建单独的类(OnGeturePerformedListener)请任何人指导我如何创建这样的新类以及如何为oncreate方法调用该类请指导我我是android和java新手
private OnGesturePerformedListener handleGestureListener = new OnGesturePerformedListener() {
@Override
public void onGesturePerformed(GestureOverlayView gestureView,
Gesture gesture) {
ArrayList<Prediction> predictions = gLib.recognize(gesture);
// ArrayList<Prediction> predictions1 = glip1.recognize(gesture);
Toast.makeText(gestureinput.this,
predictions.get(0).name + " " + predictions.get(0).score,
Toast.LENGTH_SHORT).show();
// one prediction needed
if (predictions.size() > 0 && predictions.get(0).score > 2.0) {
String prediction = predictions.get(0).name;
// checking prediction
if (prediction.equals("A")) {
// and action
et.append("A");
// et.getText().insert(et.getSelectionStart(), "A");
}
}
}
};
private OnGeturePerformedListener HandleGetureListener=new OnGeturePerformedListener(){
@凌驾
已执行的测试的公共无效(GestureOverlayView gestureView,
(手势){
ArrayList预测=油嘴滑舌的识别(手势);
//ArrayList predictions1=glip1.识别(手势);
Toast.makeText(gestureinput.this,
预测。获取(0)。名称+“”+预测。获取(0)。分数,
吐司。长度(短)。show();
//需要一个预测
if(predictions.size()>0&&predictions.get(0).score>2.0){
字符串预测=预测.get(0).name;
//检验预测
if(预测等于(“A”)){
//和行动
等附加(“A”);
//et.getText().insert(et.getSelectionStart(),“A”);
}
}
}
};
}试试这种方法
class MyGestureHandler implements OnGesturePerformedListener{
@Override
public void onGesturePerformed(GestureOverlayView gestureView,
Gesture gesture) {
ArrayList<Prediction> predictions = gLib.recognize(gesture);
// ArrayList<Prediction> predictions1 = glip1.recognize(gesture);
Toast.makeText(gestureinput.this,
predictions.get(0).name + " " + predictions.get(0).score,
Toast.LENGTH_SHORT).show();
// one prediction needed
if (predictions.size() > 0 && predictions.get(0).score > 2.0) {
String prediction = predictions.get(0).name;
// checking prediction
if (prediction.equals("A")) {
// and action
et.append("A");
// et.getText().insert(et.getSelectionStart(), "A");
}
}
}
非常感谢您的回复,工作很酷,但我无法访问ArrayList predictions=gLib.recognize(手势);和等附加(“A”);这些局部变量在主要活动中…我如何访问该GestureLibrary并编辑该类中的文本..将该类创建为内部类或将gLib声明为Public,当答案或问题有用或良好或/脱离主题/模糊等时,您应接受或给予+1/-1分。
MyGestureHandler myHandler = new MyGestureHandler();
gestures.addOnGesturePerformedListener(myHandler);