<p>1.通过onClick属性设置处理方法</p><p> 在XML布局文件中设置Button的属性:</p><p> android:onClick="yourMethodName"</p><p> 然后在该布局文件对应的Acitivity中实现该方法:</p><pre class="brush:java;toolbar:false"> /**Calledwhentheusertouchesthebutton*/
publicvoidyourMethodName(Viewview)
{
//Dosomethinginresponsetobuttonclick
}</pre><p> 需要注意的是这个方法必须符合三个条件:</p><p> 1.public</p><p> 2.返回void</p><p> 3.只有一个参数View,这个View就是被点击的这个控件。</p><p></p><p>2.使用setOnClickListener添加监听器对象</p><p> 可以写一个内部类,实现OnClickListener接口,在这个类中实现onClick方法,方法里面写在按钮点击时想做的具体工作。<br/></p><p> 将这个内部类的对象传入按钮的setOnClickListener方法中,即完成监听器对象和按钮的绑定(在事件源Button上注册了事件监听器),这时候只要按钮被点击,那么监听器对象的onClick方法就会被调用。</p><p> 当然这里也不一定要自己写一个内部类出来,比如这个例子:</p><pre class="brush:java;toolbar:false"> Buttonbutton=(Button)findViewById(R.id.button_send);
button.setOnClickListener(newView.OnClickListener(){
publicvoidonClick(Viewv)
{
//Dosomethinginresponsetobuttonclick
}
});</pre><p>按钮基本操作实例</p><p> 奉上实例一个:</p><p> XML布局文件</p><pre class="brush:xml;toolbar:false"><RelativeLayoutxmlns: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">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:padding="@dimen/padding_medium"
android:text="@string/hello_world"
tools:context=".ButtonActivity"/>
<Button
android:id="@+id/button_first"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="@string/buttonText"
android:onClick="changeButtonColor"
>
</Button>
<Button
android:id="@+id/button_second"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="@string/buttonText2"
android:layout_below="@id/button_first"
>
</Button>
</RelativeLayout></pre><p> Activity代码</p><pre class="brush:java;toolbar:false">packagecom.example.buttontest;
importandroid.app.Activity;
importandroid.os.Bundle;
importandroid.view.Menu;
importandroid.view.View;
importandroid.view.View.OnClickListener;
importandroid.widget.Button;
publicclassButtonActivityextendsActivity
{
privateButtonbutton01=null;
privateButtonbutton02=null;
@Override
publicvoidonCreate(BundlesavedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_button);
button01=(Button)findViewById(R.id.button_first);
button02=(Button)findViewById(R.id.button_second);
//绑定事件源和监听器对象
button02.setOnClickListener(newMyButtonListener());
}
@Override
publicbooleanonCreateOptionsMenu(Menumenu)
{
getMenuInflater().inflate(R.menu.activity_button,menu);
returntrue;
}
//按钮1的点击事件
publicvoidchangeButtonColor(Viewview)
{
button01.setBackgroundColor(getResources().getColor(R.color.red));
}
//内部类,实现OnClickListener接口
//作为第二个按钮的监听器类
classMyButtonListenerimplementsOnClickListener
{
publicvoidonClick(Viewv)
{
button02.setBackgroundColor(getResources().getColor(R.color.blue));
}
}
}</pre><p> 运行截图 </p><p> 点击前:</p><p><img src="/up_pic/201812/171013329535.png" title="171013329535.png" alt="1.png"/></p><p> 点击后:</p><p><img src="/up_pic/201812/171013379437.png" title="171013379437.png" alt="2.png"/></p><p></p><p> 相关的资源文件中内容</p><p> strings.xml</p><pre class="brush:xml;toolbar:false">
<resources>
<stringname="app_name">ButtonTest</string>
<stringname="hello_world">Helloworld!</string>
<stringname="menu_settings">Settings</string>
<stringname="title_activity_button">ButtonActivity</string>
<stringname="buttonText">ThisIsAButton</string>
<stringname="buttonText2">ThisIsAnotherButton</string>
</resources></pre><p></p><p> colors.xml</p><pre class="brush:xml;toolbar:false">
<?xmlversion="1.0"encoding="UTF-8"?>
<resources>
<colorname="red">#f00</color>
<colorname="green">#0f0</color>
<colorname="blue">#00f</color>
<colorname="black">#000</color>
</resources></pre>