gpt4 book ai didi

java - Android OnTouchListener 不起作用

转载 作者:行者123 更新时间:2023-12-01 22:43:34 24 4
gpt4 key购买 nike

很简单。 OnTouchListener 根本不起作用。

我相当确定它正在初始化。我正在使用自定义 View 来绘制 UI,和往常一样,我受到 Android 敏感 API 的阻碍(双关语):

public class ViewInterface extends View implements OnTouchListener{

public ViewInterface(Context context){
super(context);

...
}

public void update(){
...
}

@Override
public void onDraw(Canvas canvas){
...
}

@Override
public boolean onTouch(View v, MotionEvent event) {
switch(event.getAction()){
case MotionEvent.ACTION_DOWN:
keyboardEnabled = true;
return true;
case MotionEvent.ACTION_UP:
keyboardEnabled = false;
return true;
default: break;
}

return false;
}

在主 Activity 中初始化 View 的代码:

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);

//setContentView(R.layout.activity_aidan);
activity = this;

viewInterface = new ViewInterface(this);
setContentView(viewInterface);

initializeSpeechRecognition();
findMe();

run.start();
}

我错过了什么?触摸屏幕并按住它时,keyboardEnabled 应设置为 true(它只是一个调试值) - 但它不执行任何操作。触摸事件似乎根本没有响应。

我尝试使用 View 内置的 onTouchEvent 方法,代码如下:

@Override
public boolean onTouchEvent(MotionEvent event) {
switch(event.getAction()){
case MotionEvent.ACTION_DOWN:
keyboardEnabled = true;
return true;
case MotionEvent.ACTION_UP:
keyboardEnabled = false;
return true;
default: break;
}

return false;
}

但是这也不起作用。触摸事件根本没有响应 - 点击屏幕并释放应该将 KeyboardEnabled 设置为 false - 但事实并非如此。

最佳答案

您应该重写 View 类的 onTouchEvent() 方法。

现在您只需实现 OnTouchListener 接口(interface),该接口(interface)应与 setOnTouchListener() 方法结合使用。

例如:

@Override
public boolean onTouchEvent(MotionEvent event) {
// do whatever
}

不要忘记在适当的时候调用super!

或者,您可以在代码中的某个位置调用 setOnTouchListener(this);,但这似乎是多余的。

关于java - Android OnTouchListener 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25708640/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com