前言:
https://blog.csdn.net/yu805894501/article/details/92801025
点击事件的几种写法
匿名内部类实现点击事件
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Toast.makeText(AnonInnerActivity.this, "我被点击了", Toast.LENGTH_SHORT).show();
}
});
当前类实现接口实现点击事件
package com.dimanche.demo;
import com.dimanche.click.R;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
/**
* 当前类实现接口实现点击事件
*
* @author Dimanche
*
*/
public class CurrenActivity extends Activity implements OnClickListener {
Button btn;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_current);
btn = (Button) findViewById(R.id.button1);
btn.setOnClickListener(this);
}
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
switch (arg0.getId()) {
case R.id.button1:
Toast.makeText(CurrenActivity.this, "我被点击了", Toast.LENGTH_SHORT).show();
break;
default:
break;
}
}
}
内部类及独立类点击事件
package com.dimanche.demo;
import com.dimanche.click.R;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
/**
*
* @author Dimanche 内部类点击事件
*/
public class InnerActivity extends Activity {
Button inner;// 内部类
Button idne;// 独立类
MyOnclic myOnclic;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_inner);
// 初始化MyClick
myOnclic = new MyOnclic();
// 初始化控件
inner = (Button) findViewById(R.id.inner);
idne = (Button) findViewById(R.id.idne);
// 绑定点击事件
inner.setOnClickListener(myOnclic);
idne.setOnClickListener(idneClick);
}
OnClickListener idneClick = new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
switch (arg0.getId()) {
// 控件id
case R.id.idne:
Toast.makeText(InnerActivity.this, "我被点击了", Toast.LENGTH_SHORT).show();
break;
default:
break;
}
}
};
/**
* 内部类
*
* @author Demanche
*
*/
class MyOnclic implements OnClickListener {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
switch (arg0.getId()) {
// 控件id
case R.id.inner:
Toast.makeText(InnerActivity.this, "我被点击了", Toast.LENGTH_SHORT).show();
break;
default:
break;
}
}
}
}
通过onClick属性实现点击事件
package com.dimanche.demo;
import com.dimanche.click.R;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;
/**
* 通过onClick属性实现点击事件
*
* @author Dimanche
*
*/
public class OnclicActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_onclic);
}
/*
* 通过onclick属性实现点击事件时,需要给方法传入view
*/
public void myClic(View view) {
Toast.makeText(OnclicActivity.this, "我被点击了", Toast.LENGTH_SHORT).show();
}
}
在布局中的button中设置onclick属性
长按事件
/**
* 长按事件
*/
OnLongClickListener longClickListener = new OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
// TODO Auto-generated method stub
Toast.makeText(MainActivity.this, "我是长按事件", Toast.LENGTH_SHORT).show();
return false;
}
};
触摸事件
package com.dimanche.demo;
import com.dimanche.click.R;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.widget.LinearLayout;
import android.widget.Toast;
/**
* 初识touch
*
* @author dimanche
*
*/
public class TouchActivity extends Activity {
LinearLayout line;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_touch);
line = (LinearLayout) findViewById(R.id.line);
line.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
// 手指按下的点击事件
case MotionEvent.ACTION_DOWN:
Log.e("摁下", "111");
Toast.makeText(TouchActivity.this, "手指摁下", Toast.LENGTH_SHORT).show();
break;
case MotionEvent.ACTION_MOVE:
Log.e("移动", "111");
Toast.makeText(TouchActivity.this, "手指开始移动", Toast.LENGTH_SHORT).show();
break;
case MotionEvent.ACTION_UP:
Log.e("抬起", "111");
Toast.makeText(TouchActivity.this, "手指抬起", Toast.LENGTH_SHORT).show();
break;
default:
Toast.makeText(TouchActivity.this, "未知操作", Toast.LENGTH_SHORT).show();
break;
}
return true;
}
});
}
}
代码已上传百度云:
链接:https://pan.baidu.com/s/1D4D0_y3DSJj77IegrSZ_XA
提取码:nuwe
个人微信公众号: