Android--Android studio --Button点击事件的写法

知识就是力量,时间就是生命。这篇文章主要讲述Android--Android studio --Button点击事件的写法相关的知识,希望能为你提供帮助。
Button点击事件:大概可以分为以下几种:

  1. 匿名内部类
  2. 定义内部类,实现OnClickListener接口
  3. 定义的构造方法
  4. 用Activity实现OnClickListener接口
  5. 指定Button的onClick的属性
首先定义一个带button的xml布局文件
activity_main.xml:

< Button android:id="@+id/bt1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="点击事件" />

然后再写java代码:


1.匿名内部类
1 @Override 2protected void onCreate(Bundle savedInstanceState) { 3super.onCreate(savedInstanceState); 4setContentView(R.layout.activity_main); 5 6bt = (Button) findViewById(R.id.bt1); 7//1.匿名内部类 8bt.setOnClickListener(new OnClickListener() { 9 10@Override 11public void onClick(View v) { 12// TODO Auto-generated method stub 13Log.i("匿名内部类", "点击事件"); 14} 15}); 16 }

 
2.定义内部类,实现OnClickListener接口
1 public class MainActivity extends Activity{ 2 3private Button bt; 4 5@Override 6protected void onCreate(Bundle savedInstanceState) { 7super.onCreate(savedInstanceState); 8setContentView(R.layout.activity_main); 9 10bt = (Button) findViewById(R.id.bt); 11 12bt.setOnClickListener(new MyListener()); 13} 14 15//定义内部类,实现OnClickListene接口 16class MyListener implements OnClickListener{ 17 18@Override 19public void onClick(View v) { 20// TODO Auto-generated method stub 21Log.i("定义内部类,实现OnClickListene接口", "点击事件"); 22} 23} 24 }

 
3.定义的构造方法
1 public class MainActivity extends Activity{ 2 3private Button bt; 4 5@Override 6protected void onCreate(Bundle savedInstanceState) { 7super.onCreate(savedInstanceState); 8setContentView(R.layout.activity_main); 9 10bt = (Button) findViewById(R.id.bt); 11 12myListener(); 13} 14 15//定义构造方法 16private void myListener() { 17// TODO Auto-generated method stub 18bt.setOnClickListener(new OnClickListener() { 19 20@Override 21public void onClick(View v) { 22// TODO Auto-generated method stub 23Log.i("定义构造方法", "点击事件"); 24} 25}); 26} 27 }

 
4.用Activity实现OnClickListener接口
1 public class MainActivity extends Activity implements OnClickListener { 2 3private Button bt; 4 5@Override 6protected void onCreate(Bundle savedInstanceState) { 7super.onCreate(savedInstanceState); 8setContentView(R.layout.activity_main); 9 10bt = (Button) findViewById(R.id.bt); 11bt.setOnClickListener(this); 12} 13 14 15//用Activity实现OnClickListener接口 16@Override 17public void onClick(View v) { 18// TODO Auto-generated method stub 19Log.i("用Activity实现OnClickListener接口", "点击事件"); 20} 21 22 }

 
5.指定Button的onClick的属性:
 先在layout文件中指定onClick属性,然后到Activity中实现这个onButtonClick方法
布局文件:
1 < Button 2 3android:layout_width="wrap_content" 4android:layout_height="wrap_content" 5android:onClick="click" 6android:text="点击事件" />

Java代码:
1 public class MainActivity extends Activity { 2 3@Override 4protected void onCreate(Bundle savedInstanceState) { 5super.onCreate(savedInstanceState); 6setContentView(R.layout.activity_main); 7 8} 9 10//5指定onClick属性方式 11public void click(View v) { 12// TODO Auto-generated method stub 13Log.i("指定onClick属性方式","点击事件"); 14} 15 }

 
另外,多个按钮点击事件的处理,以指定onClick属性方式为例,获取其资源id,通过资源id,可以判断用户点击了哪个按钮了。
 
布局文件:
< Button android:id="@+id/bt1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="click" android:text="点击事件1" /> < Button android:id="@+id/bt2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="click" android:text="点击事件2" /> < Button android:id="@+id/bt3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="click" android:text="点击事件3" /> /> < Button android:id="@+id/bt4" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="click" android:text="点击事件4" />

Java代码:
public class MainActivity extends Activity {@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); }//指定onClick属性方式 //传人的View对象,就是用户按下的那个按钮对象 public void click(View v) { // TODO Auto-generated method stub//获取组件的资源id int id = v.getId(); switch (id) { case R.id.bt1: Log.i("指定onClick属性方式","bt1点击事件"); break; case R.id.bt2: Log.i("指定onClick属性方式","bt2点击事件"); break; case R.id.bt3: Log.i("指定onClick属性方式","bt3点击事件"); break; case R.id.bt4: Log.i("指定onClick属性方式","bt4点击事件"); break; default: break; } } }

【Android--Android studio --Button点击事件的写法】 




    推荐阅读