android模拟点击滑动,模拟Android的view点击和滑动监听

一,简单形式的

/*模拟Android中的view 点击和滑动监听

* */

public class View {

private OnClickListener onClickListener;

private OnTouchListener onTouchListener;

public void setOnClickListener(OnClickListener onClickListener) {

this.onClickListener=onClickListener;

}

public void setOnTouchListener(OnTouchListener onTouchListener) {

this.onTouchListener=onTouchListener;

}

//模拟view被点击后会调用此方法,通知click listener

public void clickView() {

onClickListener.OnClick(this);

}

//模拟view被滑动后会调用此方法,通知touch listener

public void touchView() {

onTouchListener.onTouch(this);

}

public interface OnClickListener{

void OnClick(View v);

/*参数里传入View的原因:

* 在Android中,不同view有不同的id

* 所以事件分发机制要通过这个ID来通知哪个view被点中了

* 如果你用"implements+接口"就能体会到传view参数进来的意义了

*

* */

}

public interface OnTouchListener{

void onTouch(View v);

}

}

import final学习.View.OnClickListener;

import final学习.View.OnTouchListener;

public class Client {

public static void main(String[] args) {

View view=new View();

view.setOnClickListener((OnClickListener) new OnClickListener() {

@Override

public void OnClick(View v) {

// TODO Auto-generated method stub

System.out.println("click the view");

}

});

view.setOnTouchListener((OnTouchListener)new OnTouchListener() {

@Override

public void onTouch(View v) {

// TODO Auto-generated method stub

System.out.println("touch the view");

}

});

//假装这里用户触发view的点击

view.clickView();

//假装这里用户触发view的滑动

view.touchView();

}

}

二,客户端调用的另一种方式

import final学习.View.OnClickListener;

import final学习.View.OnTouchListener;

public class Client implements View.OnClickListener,View.OnTouchListener{

private static View view;

public void init() {

view=new View();

view.setOnClickListener(this);

view.setOnTouchListener(this);

}

public static void main(String[] args) {

init();//虽然这里必须要init()是static,这个应该是ide问题,不妨碍写法是对的

//假装这里用户出发view的点击

view.clickView();

//假装这里用户触发view的滑动

view.touchView();

}

@Override

public void onTouch(View v) {

// TODO Auto-generated method stub

System.out.println("touch the view");

}

@Override

public void OnClick(View v) {

// TODO Auto-generated method stub

System.out.println("click the view");

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值