JAVA,android中button控件的各个击破!

来源:互联网 发布:u盘数据误删恢复 编辑:程序博客网 时间:2024/05/25 19:55

3.7简单的按钮事件——Button事件处理

Button事件由系统的ButtonOnClickListener所控制,下面示范如何在Activity下布局一个按钮,并设计一个按钮的响应函数。单击按钮,改变文字。

我们先设计按钮的布局 在main.xml

  <Button
    android:id="@+id/myButton1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/str_button1" />

 

设置好按钮的布局后我们就开是对这个按钮进行编程

看主程序

import android.view.View;   //View显示
import android.widget.Button;  //Button显示
import android.widget.TextView;   //TextView显示

public class ex3_7 extends Activity {
 
 
  
private Button mButton1;  //定义按钮变量
   private TextView mTextView1; //定义Text变量
  
  
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
       
        mButton1 =(Button) findViewById(R.id.myButton1);

//找到myButton1 的ID
        mTextView1 = (TextView) findViewById(R.id.myTextView1);

//找到myTextView1的ID
        //下面是核心
        mButton1.setOnClickListener(new Button.OnClickListener()
        {
          @Override
          public void onClick(View v) //响应函数
          {
            // TODO Auto-generated method stub
            mTextView1.setText("Hi, Everyone!!");  //重新设置文字。
          }
        });
    }
}

 

按钮进阶实验

 

3.13置换文字颜色的机关——Button和TextView的交换。

实现了通过按钮实现TextView的文字的颜色变换

界面布局,我们设置一个TextView和Button就OK了。

下面主要看看主函数:

/*必须引用graphics.Color才能使用Color.*对象*/
import android.graphics.Color;

import android.os.Bundle;
import android.view.View;

/*必须引用widget.Button才能使用Button对象*/
import android.widget.Button;

/*必须引用widget.TextView才能使用TestView对象*/
import android.widget.TextView;


public class ex3_13 extends Activity {
 
   private Button mButton;
   private TextView mText;
   private int[] mColors;
   private int colornum;
  
  
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
       
       
        /*使用findViewById main.xml和string.xml  的button ID 和textViewID*/
        mButton=(Button) findViewById(R.id.mybutton);
        mText= (TextView) findViewById(R.id.mytext);

        /*定义数组array定义颜色*/
        mColors = new int[]
                          {
        Color.BLACK, Color.RED, Color.BLUE,
        Color.GREEN, Color.MAGENTA, Color.YELLOW
                           };
        //定义长度统计变量
        colornum=0; 
       
    /*setOnClickListener让按钮聆听事件函数*/
        mButton.setOnClickListener(new View.OnClickListener()
        {            
          /*onClick改变text的文字*/
          public void onClick(View v)
          {       
           
if (colornum < mColors.length)
            {
              mText.setTextColor(mColors[colornum]);
              colornum++;
            }
            else
              colornum=0;
           } 
        }
        ); 
       
    }
}

 

3.16简单计算器的应用

首先我们需要设置布局

具体如下main. xml

<EditText 
   
android:id="@+id/mText1"  //加数
    android:layout_width="47px"
    android:layout_height="wrap_content"
    android:textSize="18sp"
    android:layout_x="26px"
    android:layout_y="52px"
  />
  <EditText
    android:id="@+id/mText2"  //符号

    android:layout_width="45px"
    android:layout_height="wrap_content"
    android:textSize="18sp"
    android:layout_x="128px"
    android:layout_y="51px"
  />
  <TextView
 
   android:id="@+id/mTextView2"  //被加数
    android:layout_width="30px"
    android:layout_height="33px"
    android:textSize="25sp"
    android:layout_x="92px"
    android:layout_y="60px"
  />
  <TextView
    android:id="@+id/mTextView3"
    android:layout_width="18px"
    android:layout_height="wrap_content"
    android:text="="  //显示=号
    android:textSize="25sp"
    android:layout_x="189px"
    android:layout_y="63px"
  />
  <TextView  //得数
    android:id="@+id/mTextView4"
    android:layout_width="91px"
    android:layout_height="35px"
    android:textSize="25sp"
    android:layout_x="219px"
    android:layout_y="61px"
  />
  <Button   //加法
    android:id="@+id/mButton2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="+"
    android:textSize="25sp"
    android:layout_x="12px"
    android:layout_y="161px"
  />
  <Button  //减法
    android:id="@+id/mButton3"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="-"
    android:textSize="25sp"
    android:layout_x="85px"
    android:layout_y="159px"
  />
 
<Button   //乘法
    android:id="@+id/mButton4"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="X"
    android:textSize="25sp"
    android:layout_x="158px"
    android:layout_y="161px"
  />
  <Button  //除法
    android:id="@+id/mButton5"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="/"
    android:textSize="25sp"
    android:layout_x="239px"
    android:layout_y="161px"
  />

设计好界面布局之后,我们要马上进行设置主程序了。

主程序如下:

import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

//显示必要加的宏


public class ex3_16 extends Activity {
 
 public Button mButton2;
 public Button mButton3;
 public Button mButton4;
 public Button mButton5;//按键声明


 public EditText mEditText1;
 public EditText mEditText2; //可编辑框声明


 public TextView mTextView2;
 public TextView mTextView4;  //显示框声明
 
 
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
   
     setContentView(R.layout.main);  //显示主框架
       
       
       
mTextView2 = (TextView) findViewById(R.id.mTextView2);
        mTextView4 = (TextView) findViewById(R.id.mTextView4);
        mButton2 = (Button) findViewById(R.id.mButton2);
        mButton3 = (Button) findViewById(R.id.mButton3);
        mButton4 = (Button) findViewById(R.id.mButton4);
        mButton5 = (Button) findViewById(R.id.mButton5);
        mEditText1 = (EditText) findViewById(R.id.mText1);
        mEditText2 = (EditText) findViewById(R.id.mText2);

//ID号查找
        
 
       mButton2.setOnClickListener(new Button.OnClickListener()
     { 
        @Override
        public void onClick(View v)
       {
          mTextView2.setText("+"); //显示加号
        
  String strRet = Integer.toString( Integer.parseInt(mEditText1.
            getText().toString())+ Integer.parseInt
            (mEditText2.getText().toString()) );   //加法运算
          mTextView4.setText(strRet); //显示得数
         
       }
       });
       
        mButton3.setOnClickListener(new Button.OnClickListener()
     { 
           @Override
           public void onClick(View v)
          {
             mTextView2.setText("-");
             String strRet = Integer.toString( Integer.parseInt(mEditText1.
               getText().toString())- Integer.parseInt
               (mEditText2.getText().toString()) );
             mTextView4.setText(strRet);
            
          }
     });
       
        mButton4.setOnClickListener(new Button.OnClickListener()
     { 
           @Override
           public void onClick(View v)
          {
             mTextView2.setText("*");
             String strRet = Integer.toString( Integer.parseInt(mEditText1.
               getText().toString())* Integer.parseInt
               (mEditText2.getText().toString()) );
             mTextView4.setText(strRet);
            
          }
     });
       
        mButton5.setOnClickListener(new Button.OnClickListener()
     { 
           @Override
           public void onClick(View v)
          {
             mTextView2.setText("/");
             String strRet = Integer.toString( Integer.parseInt(mEditText1.
               getText().toString())/ Integer.parseInt
               (mEditText2.getText().toString()) );
             mTextView4.setText(strRet);
            
          }
     });  
       
    }
}

 

这样我们就可以做出一个简单的计算器

 

 按钮的另类使用

3.19 全屏幕以按钮覆盖——动态产生按钮并最大化

 

 如果你要设计的程序Activity只有一个简单功能,且简单到一个按钮的话,那个本例可以作为一个指针。接下来的例子是拓展Progress Dialog的范例,只是这次的Layout中不使用TextView,也不需要Layout里面部署Button对象。

实际上是直接与OnCreate里面创建不太难Button1按钮对象,并指定其OnClickListener,如此以来即可以全屏幕作为按钮。

具体如下

package com.sharpandroid.ex3;

import android.app.Activity;
import android.app.ProgressDialog;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;


public class ex3_19 extends Activity {
 
 /*创建一个全局类成员,类型为ProgressDialog对象*/
   public ProgressDialog myDialog = null;
   @Override
   public void onCreate(Bundle icicle)
   {
     super.onCreate(icicle);
    
     /* 创建一个按钮对象*/
     Button btnButton1 = new Button(this);
     this.setContentView(btnButton1);
     btnButton1.setText(R.string.str_btn1);
    
     /* 为创建好了的按钮对象指定一个OnClicklistener
      * 既单击会运行事件
      * 并在事件处理中显示ProgressBar */
     btnButton1.setOnClickListener(myShowProgressBar);
   }
    
   /** 单击按钮会运行的OnClickListener事件 */
   Button.OnClickListener myShowProgressBar = new Button.OnClickListener()
   {
     // @Override
     public void onClick(View arg0)
     {
       CharSequence strDialogTitle = getString(R.string.str_dialog_title);
       CharSequence strDialogBody = getString(R.string.str_dialog_body);
      
       // 显示Progress对话框
       myDialog = ProgressDialog.show
                  (
                    ex3_19.this,   
                    strDialogTitle,
                    strDialogBody,
                    true
                  );
       
       new Thread()
       {
         public void run()
         {
           try
           {
             /*在这里写上要运行的程序片段 */
             /*为了能看到显示效果以暂停3秒为例子 */
             sleep(3000);
           }
           catch (Exception e)
           {
           }
           // 卸载所创建的myDialog对象
           myDialog.dismiss();
         }
       }.start(); /* 开始运行线程序 */
     }
   };
 }

 

原创粉丝点击