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程序设计有所帮助。