常用事件响应实习方式
来源:互联网 发布:ubuntu 16.04 安装 编辑:程序博客网 时间:2024/05/18 01:27
一、单击事件onclick
1、动态设置
Button button = (Button) findViewById(R.id.button1);
button.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this, "click button", Toast.LENGTH_SHORT).show();
}
});
2、配置方式,仅限于onclick
在配置文件中先声明一个回调函数。
xml中
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onclick="test"
/>
MainActivity
public void test(View view)
{
view.setX(view.getX()+10);
}
二、长按事件
button.setOnLongClickListener(new OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
// TODO Auto-generated method stub
Toast.makeText(MainActivity.this, "long click", Toast.LENGTH_SHORT).show();
return false;
}
});
如果返回false,将会继续触发事件,如点击事件。如何返回True,这不会再触发其他事件。
三、触发事件
button.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
int actionType = event.getAction();
if(actionType == MotionEvent.ACTION_DOWN)
{
System.out.println("tonch 按下...");
}
else if(actionType == MotionEvent.ACTION_MOVE)
{
System.out.println("tonch 移动...");
}
else if(actionType == MotionEvent.ACTION_UP)
{
System.out.println("touch 松开...");
}
else {
}
return false;
}
});
event 对象记录了 事件发生的现场对象
四、拖拽的小实习
final Button button = (Button) findViewById(R.id.button1);
ViewGroup viewGroup = (ViewGroup) findViewById(R.id.layout_01);
viewGroup.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
int actionType = event.getAction();
if(actionType == MotionEvent.ACTION_DOWN)
{
System.out.println("tonch 按下...");
}
else if(actionType == MotionEvent.ACTION_MOVE)
{
float f = event.getX();
float f1 = event.getY();
button.setX(f);
button.setY(f1);
System.out.println("tonch 移动...");
}
else if(actionType == MotionEvent.ACTION_UP)
{
System.out.println("touch 松开...");
}
else {
}
return true;
}
});
viewGroup:获取整个布局里的控件view
return ture:说明你还没消费onTouch事件,在执行完你onTouch里面的代码之后,onTouch事件并没有结束。就是会自动地执行Gallery这个view里onTouch代码
return false:说明你已经消费完了onTouch事件,在执行完你的onTouch里面的代码之后,这个onTouch事件就结束了。
五:焦点事件
button.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
Toast.makeText(MainActivity.this, "焦点事件...", Toast.LENGTH_SHORT).show();
}
});
六、键盘事件
button.setOnKeyListener(new OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
String keyString = ""+keyCode;
Toast.makeText(MainActivity.this, keyString, Toast.LENGTH_SHORT).show();
return false;
}
});
要先获得焦点。
- 常用事件响应实习方式
- javascript事件的响应方式
- JavaScript常用的事件响应
- android响应事件的三种方式
- Button响应事件的4中方式
- 事件响应链及传递方式
- Android开发 - 常用点击响应事件OnClickListener
- 常用控件的事件响应方法
- 常用控件的事件响应方法
- Android之下Menu的创建方式和事件响应
- Button按钮响应事件的2种实现方式
- android响应事件(按钮)的三种方式
- Android 控件中事件响应的三种实现方式
- android响应事件(按钮)的三种方式
- 【Android】控件和基本事件响应的三种方式
- 【Android】控件和基本事件响应的三种方式
- android学习之4种点击事件的响应方式
- IOS--View的事件响应者处理方式
- 15_09_08 返回值类型错误
- CSDN-markdown编辑器
- 制作一个USB 多启动盘(MBR)
- Android:利用selector优化布局,提升用户体验
- enumeration与itertor
- 常用事件响应实习方式
- 反射
- iOS开发个人独立博客收集
- 使用指针数组访问一维数组数据
- 1090. Highest Price in Supply Chain (25)
- iOS制作.a库
- UVA11988_Broken Keyboard (a.k.a. Beiju Text)
- ML基石_1_LearningProblem
- Java线程面试题Top50