本章学习笔记介绍Button事件实现的两种方法

在界面中直接拉取创建button按钮 Graphical layout -> Form Widgets -> button

创建好界面的xml界面代码

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.testone.MainActivity" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/hello_world" />

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/button1"
        android:layout_below="@+id/button1"
        android:layout_marginTop="33dp"
        android:text="按钮2" />

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/textView1"
        android:layout_below="@+id/textView1"
        android:layout_marginTop="42dp"
        android:text="按钮1" />
    
</RelativeLayout>

注:我本是做.net开发,有前台和后台之分,我也已经习惯这样叫,也同意区分。就把界面部分代码就做前台也就是xml部分,后台则是java部分。

 

前台代码OK,接下来就是后台触发按钮事件的代码。

第一种:

首先我们要引用按钮的一些类。

import android.view.View.OnClickListener;  
import android.widget.Button;  
import android.widget.Toast;

这些类具体有啥用,可以查阅一下API,这里我就不逼逼了。

然后写代码寻找前台界面中的按钮并响应按钮的单击事件。

public class MainActivity extends Activity {
    Button mybutton1,mybutton2;  //创建两个按钮的全局变量
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        mybutton1 =(Button)findViewById(R.id.button1);  //寻找界面中按钮1
        mybutton2 =(Button)findViewById(R.id.button2);  //寻找界面中按钮2       
        mybutton1.setOnClickListener(new ButtonClick());  //赋予按钮1单击动作产生的事件  
        mybutton2.setOnClickListener(new ButtonClick());  //赋予按钮2单击动作产生的事件   
        
    }

//创建一个类,来响应OnClickListener  
    class ButtonClick implements OnClickListener  
    {  
        public void onClick(View v)  
        {  
            switch (v.getId()) {  
            case R.id.button1:  
                Toast.makeText(MainActivity.this, "你点击了按钮1",Toast.LENGTH_LONG).show();  //单击按钮1提示 
                break;  
            case R.id.button2:  
                Toast.makeText(MainActivity.this, "你点击了按钮2",Toast.LENGTH_LONG).show();  //单击按钮2提示                
          break;  
            default:  
                break;  
            }  
        }         
    }  

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();
        if (id == R.id.action_settings) {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }
}

注:Toast类中有许多用法,这里只是用了一种提示信息的方法,想更多了解这个类可以百度一下。

 

第二种:

import android.app.Activity;  
import android.os.Bundle;  
import android.view.View;  
import android.view.View.OnClickListener;  
import android.widget.Button;  
import android.widget.Toast;  
 
public class ButtonDemoActivity extends Activity {  
    Button myButton1,myButton2;  
    @Override 
    public void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.main);  
          
        myButton1=(Button)findViewById(R.id.myButton1);  
        myButton2=(Button)findViewById(R.id.myButton2);  
          
        //使用匿名类注册Button事件  
        myButton1.setOnClickListener(new OnClickListener()  
        {         
            public void onClick(View v)  
            {  
                Toast.makeText(ButtonDemoActivity.this, "你点击了按钮1",Toast.LENGTH_LONG).show();  
            }  
        });  
        myButton2.setOnClickListener(new OnClickListener()  
        {         
            public void onClick(View v)  
            {  
                Toast.makeText(ButtonDemoActivity.this, "你点击了按钮2",Toast.LENGTH_LONG).show();  
            }  
        });  
    }  
}

第二种转自“IT的点点滴滴” 博客,请务必保留此出处http://liangruijun.blog.51cto.com/3061169/629329

第二种我没有验证过,第一种我是亲自完成实例的。

最后button按钮单击事件使用情况就这些了,文章根据“IT的点点滴滴” 博客改写,如有侵犯原作者,我表示歉意这里只是学习、借鉴、总结和个人收藏。

--------------------

新增圆角按钮实现方法,不多说,直接上代码

在res目录下的drawable-mdpi建立xml文件shape.xml,代码如下:

<?xml version="1.0" encoding="UTF-8"?> 
<shape 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="rectangle"> 
    <!-- 填充的颜色 --> 
    <solid android:color="#FF9900" /> 
    <!-- 设置按钮的四个角为弧形 --> 
    <!-- android:radius 弧形的半径 --> 
    <corners android:radius="5dip" /> 
      
<!-- padding:Button里面的文字与Button边界的间隔 --> 
<padding 
   android:left="10dp" 
   android:top="10dp" 
   android:right="10dp" 
   android:bottom="10dp" 
/> 
</shape>

在前台界面创建好按钮添加一个属性:android:background="@drawable/shape" ,完整代码如下:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.testone.MainActivity" >

    
    <Button
        android:id="@+id/roundButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="30dp"
        android:background="@drawable/shape"  //调用上面xml中设置圆角按钮的样式
        android:text="圆角按钮" />

</RelativeLayout>

显示结果如下:

Android点击按钮发送请求 安卓开发按钮点击事件_xml

ok平时学习的一点点积累都是以后慢慢成功的一小步。