Android基础控件之Button的基本使用

<p>1.通过onClick属性设置处理方法</p><p>  在XML布局文件中设置Button的属性:</p><p>  android:onClick=&quot;yourMethodName&quot;</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">&lt;RelativeLayoutxmlns:android=&quot;http://schemas.android.com/apk/res/android&quot; xmlns:tools=&quot;http://schemas.android.com/tools&quot; android:layout_width=&quot;match_parent&quot; android:layout_height=&quot;match_parent&quot;&gt; &lt;TextView android:layout_width=&quot;wrap_content&quot; android:layout_height=&quot;wrap_content&quot; android:layout_centerHorizontal=&quot;true&quot; android:layout_centerVertical=&quot;true&quot; android:padding=&quot;@dimen/padding_medium&quot; android:text=&quot;@string/hello_world&quot; tools:context=&quot;.ButtonActivity&quot;/&gt; &lt;Button android:id=&quot;@+id/button_first&quot; android:layout_height=&quot;wrap_content&quot; android:layout_width=&quot;wrap_content&quot; android:text=&quot;@string/buttonText&quot; android:onClick=&quot;changeButtonColor&quot; &gt; &lt;/Button&gt; &lt;Button android:id=&quot;@+id/button_second&quot; android:layout_height=&quot;wrap_content&quot; android:layout_width=&quot;wrap_content&quot; android:text=&quot;@string/buttonText2&quot; android:layout_below=&quot;@id/button_first&quot; &gt; &lt;/Button&gt; &lt;/RelativeLayout&gt;</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"> &lt;resources&gt; &lt;stringname=&quot;app_name&quot;&gt;ButtonTest&lt;/string&gt; &lt;stringname=&quot;hello_world&quot;&gt;Helloworld!&lt;/string&gt; &lt;stringname=&quot;menu_settings&quot;&gt;Settings&lt;/string&gt; &lt;stringname=&quot;title_activity_button&quot;&gt;ButtonActivity&lt;/string&gt; &lt;stringname=&quot;buttonText&quot;&gt;ThisIsAButton&lt;/string&gt; &lt;stringname=&quot;buttonText2&quot;&gt;ThisIsAnotherButton&lt;/string&gt; &lt;/resources&gt;</pre><p></p><p>  colors.xml</p><pre class="brush:xml;toolbar:false"> &lt;?xmlversion=&quot;1.0&quot;encoding=&quot;UTF-8&quot;?&gt; &lt;resources&gt; &lt;colorname=&quot;red&quot;&gt;#f00&lt;/color&gt; &lt;colorname=&quot;green&quot;&gt;#0f0&lt;/color&gt; &lt;colorname=&quot;blue&quot;&gt;#00f&lt;/color&gt; &lt;colorname=&quot;black&quot;&gt;#000&lt;/color&gt; &lt;/resources&gt;</pre>
RangeTime:0.011367s
RangeMem:211.57 KB
返回顶部 留言