Android基本事件的相应——按钮

来源:互联网 发布:js中鼠标点击图片放大 编辑:程序博客网 时间:2024/05/22 11:44
实现效果

利用三个按钮来控制一个文本框背景的颜色,其运行的结果如下图所示:

Android基本事件的相应 - fu5cheng - 未来船长的博客



基本要点:
*得到布局文件(xml)的控件句柄
*设置控件的行为

步骤:
1.建立已运用程序,其AndroidMainfest.xml的描述为:

<activity             android:name="TestEvent2"            android:label="TestEvent2">            <intent-filter>                <action android:name="android.intent.action.MAIN"/>                <category android:name="android.intent.category.LAUNCHER"/>            </intent-filter>        </activity>

2.layout的布局文件为

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical">    <TextView        android:id="@+id/text1"        android:layout_width="131dp"        android:layout_height="wrap_content"        android:layout_gravity="center"        android:background="#ffff00"        android:text=" "        android:textSize="64sp"/>    <Button        android:id="@+id/button1"        android:layout_width="127dp"        android:layout_height="wrap_content"        android:layout_gravity="center"        android:layout_marginTop="56dp"        android:text="red" />    <Button        android:id="@+id/button2"        android:layout_width="127dp"        android:layout_height="wrap_content"        android:layout_gravity="center"        android:layout_marginTop="56dp"        android:text="green" />    <Button        android:id="@+id/button3"        android:layout_width="127dp"        android:layout_height="wrap_content"        android:layout_gravity="center"        android:layout_marginTop="56dp"        android:text="blue" /></LinearLayout>


3.代码的实现
   以上只是在布局文件中添加了按钮和文本框,但具体的行为还没有实现。以下将用三种方法来进行实现:
  方法1:新建一个名为TestEvent1.java的文件,其内容如下:

package com.example.testbutton;import android.app.Activity;import android.graphics.Color;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.TextView;//第一种相应方式public class TestEvent1 extends Activity {         private static final String TAG ="TestEvent1";         public  void TestEevent1(){                            }             @Override         protected void onCreate(BundlesavedInstanceState) {                  //实现相关的接口                   super.onCreate(savedInstanceState);                   setContentView(R.layout.testevent);                   final TextView Text = (TextView)findViewById(R.id.text1);//获得句柄                   final Button Button1 = (Button)findViewById(R.id.button1);                   final Button Button2 = (Button)findViewById(R.id.button2);                   final Button Button3 = (Button)findViewById(R.id.button3);                                      Button1.setOnClickListener(newOnClickListener() {                            @Override                            public voidonClick(View v) {                                     Text.setBackgroundColor(Color.RED);                            }                   });                                      Button2.setOnClickListener(newOnClickListener() {                            @Override                            public voidonClick(View v) {                                     Text.setBackgroundColor(Color.GREEN);                            }                   });                                      Button3.setOnClickListener(newOnClickListener() {                            @Override                            public voidonClick(View v) {                                     Text.setBackgroundColor(Color.BLUE);                            }                   });         }}


  方法2:新建一个名为TestEvent2.java的文件,其内容如下:

package com.example.testbutton;import android.app.Activity;import android.graphics.Color;import android.os.Bundle;import android.util.Log;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.TextView;//方式2public class TestEvent2 extends Activity implements OnClickListener {         private static final String TAG ="TestEvent2";         private TextView mText;         private Button mButton1;         private Button mButton2;         private Button mButton3;         public TestEvent2() {         }         @Override         protected void onCreate(BundlesavedInstanceState) {                   super.onCreate(savedInstanceState);                   setContentView(R.layout.testevent);                   mText = (TextView)findViewById(R.id.text1);                   mButton1 = (Button)findViewById(R.id.button1);                     mButton1.setOnClickListener(this);   //设置监听器                 mButton2= (Button) findViewById(R.id.button2);                 mButton2.setOnClickListener(this);                 mButton3= (Button) findViewById(R.id.button3);                 mButton3.setOnClickListener(this);        }         publicvoid onClick(View v) {        Log.v(TAG,"onClick()");                 switch(v.getId()) {                 caseR.id.button1:                           mText.setBackgroundColor(Color.RED);                           break;                 caseR.id.button2:                           mText.setBackgroundColor(Color.GREEN);                           break;                 caseR.id.button3:                           mText.setBackgroundColor(Color.BLUE);                           break;                 default:                           Log.v(TAG,"other");                            break;                   }         }}



  方法3:新建一个名为TestEvent3.java的文件,其内容如下:

package com.example.testbutton;import android.R.color;import android.app.Activity;import android.graphics.Color;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.TextView;//方式3public class TestEvent3 extends Activity {         private static final String TAG ="TestEvent3";         private TextView mText;         private Button1_OnClickListenermListener1 = new Button1_OnClickListener();         private Button2_OnClickListenermListener2 = new Button2_OnClickListener();         private Button3_OnClickListenermListener3 = new Button3_OnClickListener();                  public TestEvent3(){                            }                  class Button1_OnClickListener implementsOnClickListener{                   @Override                   public void onClick(Viewarg0) {                            mText.setBackgroundColor(Color.RED);                   }                            }         class Button2_OnClickListener implementsOnClickListener{                                      @Override                   public void onClick(Viewarg0) {                        mText.setBackgroundColor(Color.GREEN);                                               }                            }         class Button3_OnClickListener implementsOnClickListener{                                      @Override                   public void onClick(Viewarg0) {                            mText.setBackgroundColor(Color.BLUE);                                               }                            }                  @Override         protected void onCreate(BundlesavedInstanceState) {                   super.onCreate(savedInstanceState);                   setContentView(R.layout.testevent);                   mText = (TextView)findViewById(R.id.text1);                   final Button mButton1 =(Button)findViewById(R.id.button1);                   final Button mButton2 =(Button)findViewById(R.id.button2);                   final Button mButton3 =(Button)findViewById(R.id.button3);                                      mButton1.setOnClickListener(mListener1);                   mButton2.setOnClickListener(mListener2);                   mButton3.setOnClickListener(mListener3);         }} 


三种方式实现的功能是一样的,但是具体的实现方式有所不同。


0 0
原创粉丝点击