gpt4 book ai didi

java - View 中的 OnTouchListener - Android

转载 作者:搜寻专家 更新时间:2023-11-01 08:04:23 24 4
gpt4 key购买 nike

当我向 View 添加监听器“OnTouchListener”时,它没有注册。这是我的代码:

GUI gui;
boolean guis = true;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
gui = new GUI(getBaseContext());
gui.setOnTouchListener(this);
setContentView(gui);
}

当我执行 setOnTouchListener() 时,我将“this”作为参数。它应该是其他东西吗?

我让 GUI 类实现 OnTouchListener 并添加一个 OnTouch 方法...但是我把

Log.w("AA","Hello")

在 OnTouch 方法中,它根本不记录。

最佳答案

您可以执行以下操作

  public class MainActivity extends Activity implements OnTouchListener{
GUI gui;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
gui = new GUI(MainActivity.this);
setContentView(gui);
gui.setOnTouchListener(this);
}


@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
Log.w("AA","Hello")
return true;
}

或者您可以在您的 gui View 中覆盖 onTouch

public class GUI extends View{

Context mcontext;
public MyView(Context context) {
super(context);
mcontext=context;
}
@Override
public boolean onTouchEvent(MotionEvent event) {
Toast.makeText(mcontext, "View clicked", 1000).show();
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
// do something
break;
case MotionEvent.ACTION_MOVE:
// do something
break;
case MotionEvent.ACTION_UP:
//do something
break;
}
return true;
}

正如 Luksprog 评论的那样,这指的是当前上下文。

如果你这样做 gui.setOnTouchListener(this);

您的 Activity 类必须实现 OnTouchListener 并覆盖 onTouch 方法。

您还可以在自定义 View 中覆盖 onTouch。

如果您只是覆盖 onTouch,则无需在 GUI 自定义 View 类中实现 OnTouchListener。

关于java - View 中的 OnTouchListener - Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16506287/

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