当前位置:文档之家› 第4章事件处理-四种点击事件

第4章事件处理-四种点击事件


点击事件实现2
点击事件实现3


第三种方法,在布局文件中为控件设置 onClick属性声明方法,属性名为其实现点击 事件的方法名。 很少使用。
点击事件实现3
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=“/apk/res/android” android:id=“@+id/MyLayout2” android:layout_width=“fill_parent” android:layout_height=“fill_parent” android:orientation=“vertical”> <Button android:id=“@+id/bt” android:layout_width=“wrap_content” android:layout_height=“wrap_content” android:layout_gravity=“center_horizontal” android:layout_margin=“100dp” android:onClick=“click“//方法名click android:text="点我" /> </LinearLayout>
点击事件实现1
点击事件实现2

第二种方式:直接用new接口,创建匿名内部类。 结构简单,代码不能重用。
点击事件实现2
public class ClickActivity extends Activity { Button button; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(yout.activity_click); button = (Button) super.findViewById(R.id.bt); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Toast.makeText(ClickActivity.this, "用第二种方式我被点击了",Toast.LENGTH_SHORT).show(); } }); }
点击事件实现3
点击事件实现4

第四种点击事件实现方法,整个页面也就是 ClickActivity实现接口。
点击事件实现4
public class ClickActivity extends Activity implements View.OnClickListener{ Button button; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(yout.activity_click); button = (Button) super.findViewById(R.id.bt); button.setOnClickListener(this);//this将整个页面传进来 @Override public void onClick(View v) { Toast.makeText(this, "用第四种方式我被点击了", Toast.LENGTH_SHORT).show(); } }

支持代码重用,结构稍微复杂。
点击事件实现1
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android= "/apk/res/android" android:id="@+id/MyLayout2" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical"> <Button android:id="@+id/bt" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:layout_margin="100dp" android:onClick="click" android:text="点我" /> </LinearLayout>
处理方法
public abstract void onClick (View v) public abstract boolean onLongClick (View v) public abstract boolean onKey (View v, int keyCode, KeyEvent event) public abstract void onFocusChange (View v, boolean hasFocus)
事件发生时,系统会自动调用处理该事件的相应方
法,从而实现用户与程序的交互,这就是图形用户
界面事件处理的基本原理。
事件处理概述
Android的事件处理机制和J2SE的事件处理机制 很接近,都是Java事件(消息)机制实现。
事件处理概述
事件处理概述
主要实现步骤:第一步,确定需要哪种事件监听 方式,选择对应的事件监听接口;第二步,定义 一个类实现该监听接口;第三步,为需要进行事 件监听的控件添加监听器(注:每个控件都有各 自添加监听器的方法),此监听器为在第二步中 实现监听接口的类的对象。
public void setOnFocusChangeListener(View.OnFocusChangeListener l)
public void setOnTouchListener(View.OnTouchListener l)
6
public void setOnCreateContextMenuListener( View.OnCreateContextMenuListener l)
第4章 事件处理
AWT事件处理
事件描述的是用户所执行的操作。图形用户界面通
过事件机制响应用户和程序的交互。当用户和界面
上的控件有交互时会产生某类事件,例如点击按钮,
就会产生动作事件。
AWT事件处理
• 事件处理模型
AWT事件处理
• 事件处理模型
Frame
Panel 事件监听器 1、用户操作
Button 确定
}
点击事件实现4
点击事件实现4

将整个页面也就是ClickActivity实现接口,根 据不同的控件完成不同的点击事件操作,适合 多个控件都具备点击事件的情况。
点击事件实现3
public class ClickActivity extends Activity { Button button; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(yout.activity_click); button = (Button) super.findViewById(R.id.bt); } public void click(View view) {//添加View对象传递父窗体 Toast.makeText(this, "用第三种方式我被点击了", Toast.LENGTH_SHORT).show(); }
点击事件

点击事件使用View.OnClickListener接口进行事 件的处理,此接口定义如下。
public static interface View.OnClickListener{ public void onClick(View v) ; }
点击事件实现1
点击事件实现1

第一种设置点击对象的方法,创建一个内部类。 类体中定义的类就是内部类。
点击事件实现1
public class ClickActivity extends Activity implements View.OnClickListener { Button button; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(yout.activity_click); button = (Button) super.findViewById(R.id.bt); button.setOnClickListener(new myonclicklisener()); } class myonclicklisener implements View.OnClickListener{ @Override public void onClick (View v) { Toast.makeText(ClickActivity.this, "用第一种方式我被点击了", Toast.LENGTH_SHORT).show(); } } }
相关主题