Android开发之Button事件实现与监听方法总结
本文实例总结了Android开发之Button事件实现与监听方法。分享给大家供大家参考,具体如下:
先来介绍Button事件实现的两种方法
main.xml
<?xmlversion="1.0"encoding="utf-8"?> <LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /> <Button android:id="@+id/myButton1" android:text="按钮1" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <Button android:id="@+id/myButton2" android:text="按钮2" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout>
strings.xml
<?xmlversion="1.0"encoding="utf-8"?> <resources> <stringname="hello">HelloWorld,ButtonDemoActivity!</string> <stringname="app_name">ButtonDemo</string> </resources>
第一种:
ButtonDemoActivity.java:
packagecom.android.ButtonDemo.activity;
importandroid.app.Activity;
importandroid.os.Bundle;
importandroid.view.View;
importandroid.view.View.OnClickListener;
importandroid.widget.Button;
importandroid.widget.Toast;
publicclassButtonDemoActivityextendsActivity{
ButtonmyButton1,myButton2;
@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
myButton1=(Button)findViewById(R.id.myButton1);
myButton2=(Button)findViewById(R.id.myButton2);
//使用匿名类注册Button事件
myButton1.setOnClickListener(newOnClickListener()
{
publicvoidonClick(Viewv)
{
Toast.makeText(ButtonDemoActivity.this,"你点击了按钮1",Toast.LENGTH_LONG).show();
}
});
myButton2.setOnClickListener(newOnClickListener()
{
publicvoidonClick(Viewv)
{
Toast.makeText(ButtonDemoActivity.this,"你点击了按钮2",Toast.LENGTH_LONG).show();
}
});
}
}
第二种:
ButtonDemoActivity.java:
packagecom.android.ButtonDemo.activity;
importandroid.app.Activity;
importandroid.os.Bundle;
importandroid.view.View;
importandroid.view.View.OnClickListener;
importandroid.widget.Button;
importandroid.widget.Toast;
publicclassButtonDemoActivityextendsActivity{
ButtonmyButton1,myButton2;
@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
myButton1=(Button)findViewById(R.id.myButton1);
myButton2=(Button)findViewById(R.id.myButton2);
myButton1.setOnClickListener(newButtonClick());
myButton2.setOnClickListener(newButtonClick());
}
//创建一个类,来响应OnClickListener
classButtonClickimplementsOnClickListener
{
publicvoidonClick(Viewv)
{
switch(v.getId()){
caseR.id.myButton1:
Toast.makeText(ButtonDemoActivity.this,"你点击了按钮1",Toast.LENGTH_LONG).show();
break;
caseR.id.myButton2:
Toast.makeText(ButtonDemoActivity.this,"你点击了按钮2",Toast.LENGTH_LONG).show();
break;
default:
break;
}
}
}
}
再来说说Button监听方法
androidbutton控件目前主要有如下几种监听方式:
一个button控件对应一个监听:
Buttonbuttontest;
buttontest=(Button)findViewById(R.id.button1);
buttontest.setOnClickListener(newView.OnClickListener(){
@Override
publicvoidonClick(Viewv){
//TODOAuto-generatedmethodstub
Log.i("TEST","buttononClick");
}
});
多个button对应一个监听1:
start=(Button)findViewById(R.id.button1);
stop=(Button)findViewById(R.id.button2);
start.setOnClickListener(mylistener);
stop.setOnClickListener(mylistener);
View.OnClickListenermylistener=newView.OnClickListener(){
@Override
publicvoidonClick(Viewv){
switch(v.getId()){
caseR.id.button1:
Log.d(TAG,"Starttorecordervideo\n");
start_recorde();
break;
caseR.id.button2:
Log.d(TAG,"Stoptorecordervideo\n");
stop_recorde();
break;
default:
break;
}
}
};
多个button对应一个监听2:
publicclassMainActivityextendsActivityimplementsView.OnClickListener{
//界面元素
privateButtonstart;
privateButtonstop;
@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
start=(Button)findViewById(R.id.button1);
stop=(Button)findViewById(R.id.button2);
start.setOnClickListener(this);
stop.setOnClickListener(this);
}
@Override
publicbooleanonCreateOptionsMenu(Menumenu){
getMenuInflater().inflate(R.menu.activity_main,menu);
returntrue;
}
@Override
publicvoidonClick(Viewv){
switch(v.getId()){
caseR.id.button1:
Log.d(TAG,"Starttorecordervideo\n");
break;
caseR.id.button2:
Log.d(TAG,"Stoptorecordervideo\n");
break;
default:
break;
}
}
}
xml中绑定监听:
<Button android:id="@+id/button1" android:layout_height="wrap_content" android:layout_width="wrap_content" android:onClick="mybuttonlistener"> </Button>
对应java代码如下:
Buttonbtn=(Button)findViewById(R.id.button1);
publicvoidmybuttonlistener(Viewtarget){
//dosomething5
}
从个人角度来讲,不推荐使用第四种实现方式。
希望本文所述对大家Android程序设计有所帮助。