Android 点击事件 4种 写法
2015-12-04 17:37
483 查看
Android中点击事件的4种写法
Android中点击事件的4种写法使用匿名内部类方式
xml 文件
Java代码
使用自定义单击事件监听类实现
xml 文件
Java代码
Activity实现点击事件
xml 文件
Java代码
使用xml属性androidonClick进行设置
xml 文件
Java代码
使用匿名内部类方式
xml 文件
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.dodi.myapplication.MainActivity"> <Button android:id="@+id/btn_1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="方式1"/> </LinearLayout>
Java代码
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //第一种方式: 使用匿名内部类方式 Button btn_1 = (Button)findViewById(R.id.btn_1); btn_1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Toast tst = Toast.makeText(MainActivity.this, "匿名内部类方式设置点击事件", Toast.LENGTH_SHORT); tst.show(); } }); } }
使用自定义单击事件监听类实现
xml 文件
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.vanm.button.MainActivity"> <Button android:id="@+id/btn_1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="按钮1"/> <Button android:id="@+id/btn_2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="按钮2"/> </LinearLayout>
Java代码
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //第二种方式: 使用自定义单击事件监听类实现 Button btn_1 = (Button) findViewById(R.id.btn_1); Button btn_2 = (Button) findViewById(R.id.btn_2); btn_1.setOnClickListener(new MyClickListener()); btn_2.setOnClickListener(new MyClickListener()); } //自定义单击事件的监听类 class MyClickListener implements View.OnClickListener { @Override public void onClick(View v) { //多个按钮的点击事件通过Switch语句区分开 switch (v.getId()) { case R.id.btn_1: Toast.makeText(MainActivity.this, "使用自定义单击事件监听类实现", Toast.LENGTH_SHORT).show(); break; case R.id.btn_2: Toast.makeText(MainActivity.this, "使用自定义单击事件监听类实现", Toast.LENGTH_SHORT).show(); break; default: break; } } } }
Activity实现点击事件
xml 文件
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.vanm.button.MainActivity"> <Button android:id="@+id/btn_3" android:layout ae56 _width="wrap_content" android:layout_height="wrap_content" android:text="方式3"/> </RelativeLayout>
Java代码
//Activity实现View.OnClickListener方法,去处理点击事件 public class MainActivity extends AppCompatActivity implements View.OnClickListener{ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button btn_3 = (Button) findViewById(R.id.btn_3); //第三种方式: Activity实现点击事件-->传入this即可 btn_3.setOnClickListener(this); } @Override public void onClick(View v) { //多个按钮的点击事件通过Switch语句区分开 switch (v.getId()) { case R.id.btn_3: Toast.makeText(MainActivity.this, "Activity实现点击事件实现", Toast.LENGTH_SHORT).show(); break; default: break; } } }
使用xml属性android:onClick进行设置
xml 文件
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.vanm.xmlonclick.MainActivity"> <!--android:onClick="btnOnClick" 给按钮指定一个点击事件 值可以自定义,并且这个值将作为点击事件方法的方法名 --> <Button android:id="@+id/btn_1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="btnOnClick" android:text="按钮1"/> <!-- 可以多个按钮指定为一个方法名,通过Switch语句区分不同的按钮--> <Button android:id="@+id/btn_2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="btnOnClick" android:text="按钮2"/> </LinearLayout>
Java代码
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } /** * 第4中方式: 通过XMl给指定按钮定义的点击事件, * 不需要调用setOnClickListener方法,不需要findViewById * 注意 这里没有 @Override 标签 * 固定写法: 修饰符: public 公共的 * 返回值类型: void 无返回值 * 方法名: 在XML的onclick属性中设置的值 * 形式参数: View类型 * @param v : 当前点击的Button */ public void btnOnClick(View v){ /*通过不同的Id区分不同的按钮*/ switch (v.getId()){ case R.id.btn_1: Toast.makeText(MainActivity.this, "通过XMl给指定按钮定义的点击事件", Toast.LENGTH_SHORT).show(); break; case R.id.btn_2: Toast.makeText(MainActivity.this, "通过XMl给指定按钮定义的点击事件", Toast.LENGTH_SHORT).show(); break; default: break; } } }
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法