Android(安卓)处理 Button 单击事件的三种方法
16lz
2022-04-16
方法一:在XML文件中指定 单击事件函数
<Button
android:id="@+id/button1"
android:layout_width="120dip"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/textView1"
android:layout_marginTop="59dp"
android:onClick="onclicklistener"
android:text="@string/mybuttonstr" />
然后在代码中实现这个函数。注意,函数需要public 要不会异常。
public void onclicklistener(View tager)
{
Log.v("MyTag", "onClick");
}
方法二:
在activity 的onCreate 中 找到button,然后给它赋上事件监听器。这个方式非常普遍。
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button but=(Button)this.findViewById(id.button1);
but.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
Log.v("MyTag", "onClick");
}
});
}
方法三:
这个方法其实是方法二的变种。就是提前定义一个OnClickListener 的handler,然后可以将这个activity中所有的button多使用这个handler,通过判断不同id来进行不同的逻辑。这个方式适合比较多的button的情况使用。
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
View.OnClickListener handler=new OnClickListener(){
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()){
case id.button1:
Log.v("MyTag", "Button1 OnClick");
break;
case id.button2:
Log.v("MyTag", "Button2 OnClick");
break;
}
}
};
Button btn1=(Button)this.findViewById(id.button1);
Button btn2=(Button)this.findViewById(id.button2);
btn1.setOnClickListener(handler);
btn2.setOnClickListener(handler);
}
<Button
android:id="@+id/button1"
android:layout_width="120dip"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/textView1"
android:layout_marginTop="59dp"
android:onClick="onclicklistener"
android:text="@string/mybuttonstr" />
然后在代码中实现这个函数。注意,函数需要public 要不会异常。
public void onclicklistener(View tager)
{
Log.v("MyTag", "onClick");
}
方法二:
在activity 的onCreate 中 找到button,然后给它赋上事件监听器。这个方式非常普遍。
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button but=(Button)this.findViewById(id.button1);
but.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
Log.v("MyTag", "onClick");
}
});
}
方法三:
这个方法其实是方法二的变种。就是提前定义一个OnClickListener 的handler,然后可以将这个activity中所有的button多使用这个handler,通过判断不同id来进行不同的逻辑。这个方式适合比较多的button的情况使用。
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
View.OnClickListener handler=new OnClickListener(){
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()){
case id.button1:
Log.v("MyTag", "Button1 OnClick");
break;
case id.button2:
Log.v("MyTag", "Button2 OnClick");
break;
}
}
};
Button btn1=(Button)this.findViewById(id.button1);
Button btn2=(Button)this.findViewById(id.button2);
btn1.setOnClickListener(handler);
btn2.setOnClickListener(handler);
}
更多相关文章
- Android(安卓)Audio
- android LinearLayout 动态添加子View
- Android(安卓)编程下 Touch 事件的分发和消费机制
- Android(安卓)jni调用,实现自己的JNI_OnLoad函数
- android之壁纸机制
- 浅谈Java中Collections.sort对List排序的两种方法
- 箭头函数的基础使用
- Python技巧匿名函数、回调函数和高阶函数
- Python list sort方法的具体使用