求android自定义控件怎么添加点击事件,长按事件

求android自定义控件怎么添加点击事件,长按事件,第1张

一般的控件只要是继承了View 都可以添加这两个事件,只需要重写View的setOnClicklistener和setOnLongClickListener这两个函数就可以了。

添加这两个函数,别人就能用set方法给你传进来listener,而你可以在onTouch方法里通过判断aciton_down action_move action_up 通过时间来判断是长按还是单击。

绑定Android点击事件有三种方式:

一、匿名内部类

1、通过资源ID找到对应的Android控件,比如R.id.button1

Button button1 = (Button)findViewById(R.id.button1)

2、调用setOnClickListener方法,将点击事件与之绑定

button1.setOnClickListener(new View.OnClickListener(){

public void onClick(View v) {

//这里放点击事件的逻辑

}

})

二、XML申明式

1、在对应的布局文件中添加一个按钮,即Button

2、在Button中添加 onClick="foo()" 属性

3、在对应的Activity中编写对应的foo()方法,如下:

public void foo(View v){

//这里放点击事件的逻辑

//这里的 " v " 是指当前组件,就是你点击的这个按钮

}

三、统一处理式

1、使对应的Activity类实现View.OnClickListener 接口,也就是这样写:

public class xxActivity implement View.OnClickListener {

2、在方法中重载onClick(View v)方法

public void onClick(View v){

3、通过 v.getId() 来判断,来源是哪一个按钮,这里可以放一个switch开关语句,来进行逻辑的分工。

}

}

纯手打,希望上文能对你起到一定的辅助作用。

Android studio 添加点击监听事件有三种方法:

一.匿名内部类

1.先找到那个控件(初始化)

private Button bt1 //onCreate方法外

bt1 = (Button)findViewById(R.id.button1)

2.设置事件监听器

bt1.setOnClickListener(new OnClickListener(){

public void onClick(View v){

System.out.println("我的按钮被点击了")

}

})

二.外部类监听点击事件

1.先找到那个控件(初始化)

private Button bt2 //onCreate方法外

bt2 = (Button)findViewById(R.id.button2)

2.设置事件监听器

bt2.setOnClickListener(new MyOnClickListener(){

public void onClick(View v){

super.onClick(v)  //执行父类的onClick

System.out.println("我的按钮被点击了") //执行子类的onClick

}

})

3.在另一个类中写父类的onClick方法

class MyOnClickListener implements OnClickListener{

public void onClick(View v){

v.setAlpha(0.5) //设置透明的0.5

}

}

//OnClickListener是一个接口

4.点击按钮后会执行服父类的onClick方法和子类的onClick方法,可以让多个按钮都执行相同的父类onClick方法

三.通过实现一个接口的方式实现监听事件

1.先找到那个控件(初始化)

private Button bt3 //onCreate方法外

bt3 = (Button)findViewById(R.id.button3)

2.设置事件监听器

bt3.setOnClickListener(this)

3.让MainActivity.java类实现一个接口

public class MainActivity extends Activity implements OnClickListener{

}

4.在onCreate方法外实现这个接口的要求实现的方法

public void onClick(View v){

System.out.println("第三种方法实现")

}

扩展资料:

如果按钮绑了监听器

按钮点击是通过OnClickListener来实现的

大致的流程应该是这样的

public class MainActivity extends Activity

{

private Button loginButton

protected void onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState)

setContentView(R.layout.activity_main)

//创建监听器对象

loginButton = (Button) findViewById(R.id.login_btn)

OnClickListener listener = new ButtonClickListener()

loginButton.setOnClickListener(listener)

}

/**

* 监听器类

*/

class ButtonClickListener implements OnClickListener

{

@Override

public void onClick(View v)

{

switch (v.getId())

{

case R.id.login_btn:

//点击后的逻辑处理

break

}

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11927238.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-19
下一篇2023-05-19

发表评论

登录后才能评论

评论列表(0条)

    保存