在非activity java文件中使用onTouch监听
时间: 2024-03-21 13:43:40 浏览: 109
在非 `Activity` 的 Java 文件中使用 `OnTouchListener` 监听器,需要实现 `View.OnTouchListener` 接口,并在对应的 `View` 上设置监听器。
例如,在一个 `non-activity` 的 Java 文件中,你可以这样实现 `OnTouchListener` 接口:
```java
public class MyOnTouchListener implements View.OnTouchListener {
@Override
public boolean onTouch(View v, MotionEvent event) {
// 在这里处理触摸事件
return true;
}
}
```
然后,在你想要监听触摸事件的 `View` 上,通过 `setOnTouchListener()` 方法设置监听器:
```java
View myView = findViewById(R.id.my_view);
MyOnTouchListener myOnTouchListener = new MyOnTouchListener();
myView.setOnTouchListener(myOnTouchListener);
```
这样,在 `myView` 上的触摸事件就会被 `MyOnTouchListener` 处理。
相关问题
在java类使用OnTouchListener
在Java类中使用OnTouchListener,可以为View对象设置触摸事件监听器,实现用户触摸屏幕时的响应操作。具体步骤如下:
1. 实现OnTouchListener接口,重写onTouch方法。
2. 在Java类中获取需要设置触摸监听器的View对象。
3. 为View对象设置触摸监听器,使用setOnTouchListener方法,并将实现了OnTouchListener接口的对象作为参数传入。
4. 重写onTouch方法,完成用户触摸屏幕时的操作。
示例代码如下:
```
public class MainActivity extends AppCompatActivity implements View.OnTouchListener {
private View mView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mView = findViewById(R.id.view);
mView.setOnTouchListener(this);
}
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
// 手指按下
break;
case MotionEvent.ACTION_MOVE:
// 手指移动
break;
case MotionEvent.ACTION_UP:
// 手指抬起
break;
}
return true;
}
}
```
在上面的代码中,我们实现了OnTouchListener接口,并重写了onTouch方法。在MainActivity的onCreate方法中,获取了需要设置触摸监听器的View对象,并调用setOnTouchListener方法设置触摸监听器。在onTouch方法中,根据不同的MotionEvent类型,完成了不同的操作。
在非activityjava类使用OnTouchListener
在非Activity的Java类中使用OnTouchListener,需要传入一个View对象作为参数,并将实现了OnTouchListener接口的对象设置为该View对象的触摸监听器。具体步骤如下:
1. 在非Activity的Java类中实现OnTouchListener接口,重写onTouch方法。
2. 在需要设置触摸监听器的View对象所在的Activity中,获取该View对象,并将其传入到非Activity的Java类中。
3. 在非Activity的Java类中,为传入的View对象设置触摸监听器,使用setOnTouchListener方法,并将实现了OnTouchListener接口的对象作为参数传入。
4. 重写onTouch方法,完成用户触摸屏幕时的操作。
示例代码如下:
```
public class MyTouchListener implements View.OnTouchListener {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
// 手指按下
break;
case MotionEvent.ACTION_MOVE:
// 手指移动
break;
case MotionEvent.ACTION_UP:
// 手指抬起
break;
}
return true;
}
}
public class MyClass {
private View mView;
public MyClass(View view) {
this.mView = view;
mView.setOnTouchListener(new MyTouchListener());
}
}
```
在上面的代码中,我们实现了OnTouchListener接口,并重写了onTouch方法。在MyClass的构造方法中,接收一个View对象作为参数,并将其保存到成员变量mView中。然后,调用mView的setOnTouchListener方法,为该View对象设置触摸监听器,将实现了OnTouchListener接口的MyTouchListener对象作为参数传入。在MyTouchListener的onTouch方法中,根据不同的MotionEvent类型,完成了不同的操作。
阅读全文