Android-Button點擊事件

 

Button點擊事件大概能夠分爲如下幾種:java

  1. 匿名內部類
  2. 實現OnClickListener接口
  3. 指定Button的onClick的屬性(XML)

還有另外的方法就不一 一介紹了android

新建一個活動頁面
找到res/layout右鍵new —>Android XML File

 

 

建立完成後,從左邊的的工具欄拖拽一個button進去:app

 

拖拽事後點擊下方的xxxx.xml這裏是test.xml進去會有你剛剛拖進去的button配置,你也能夠手動在xml添加按鈕和其餘組件(我的不推薦,容易出錯)ide

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3     android:layout_width="match_parent"
 4     android:layout_height="match_parent"
 5     android:orientation="vertical" >
 6     <!--新添加的按鈕  -->
 7     <Button
 8         android:id="@+id/button1"
 9         android:layout_width="wrap_content"
10         android:layout_height="wrap_content"
11         android:text="Button" />
12 
13 </LinearLayout>

 

從上圖能夠看到這就是咱們剛剛添加的按鈕所配置的xml,其中函數

android:id 是給button  綁定一個句柄,語法是:@+id/按鈕的名字(其餘組件同理)工具

android:layout_width  是指定按鈕的寬度this

android:layout_height  是指定按鈕的高度spa

android:text  是指定按鈕的名字3d

 

配置完成後在gen/下R.java自動生成咱們剛剛建立的button和layout了code

而後在咱們Activity加載咱們配置layout

在OnCreate調用setContenView:

1  protected void onCreate(Bundle savedInstanceState) {
2         super.onCreate(savedInstanceState); 3 //加載test.layout 4  setContentView(R.layout.test); 5 6 }

上面的R.layout.test就是R.java文件當中的test,從上截圖能夠找出

 

匿名內部類:

 protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState); //加載活動頁面  setContentView(R.layout.activity_main); //對控件進行賦值 btn1 = (Button) this.findViewById(R.id.button1); //修改button的名字 btn1.setText("點我咯"); //綁定點擊事件監聽(這裏用的是匿名內部類建立監聽) btn1.setOnClickListener(new OnClickListener(){ int i = 0; public void onClick(View v) {
        //點擊彈出你消息框 Toast toast = Toast.makeText(getApplicationContext(),"你點擊了"+(++i)+"次", Toast.LENGTH_LONG);//提示被點擊了 toast.show(); } }); }

 

 運行結果:

 

 實現OnClickListener的方法:

  新建一個ButtonClickListener類

  

 1 package com.example.helloworld;
 2 
 3 import android.content.Context;
 4 
 5 import android.view.View;
 6 import android.view.View.OnClickListener;
 7 import android.widget.Toast;
 8 
 9 public class ButtonClickListener implements OnClickListener{
10     //實現OnClickListener接口
11     //定義一個上下文變量
12     private Context c;
13     //定義一個構造函數傳入上下文
14     public ButtonClickListener (Context c){
15         this.c=c;
16     }
17     //實現OnClic方法
18     @Override
19     public void onClick(View v) {
20         // TODO Auto-generated method stub
21         Toast.makeText(c, "乃好,安卓1班", Toast.LENGTH_SHORT).show();
22     }
23     
24     
25 
26     
27 
28 }

在Activity類中調用:

  

package com.example.helloworld;

import android.app.Activity;
import android.app.AlertDialog;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;


public class MainActivity extends Activity {
    private Button btn1;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //加載活動頁面
        setContentView(R.layout.activity_main);
        //對控件進行賦值
       btn1 = (Button) this.findViewById(R.id.button1);
       //修改button的名字
       btn1.setText("點我咯");
       //綁定點擊事件監聽(調用接口)
       btn1.setOnClickListener(new ButtonClickListener(this));
    }
}

 

 運行結果:

 

 XML中指定Button的onClick的屬性

  在layout的配置文件中找到button1的控件。在裏面的添加一個android:onclick屬性:

  

<?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" >
    <!--新添加的按鈕  -->
    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button" 
        android:onClick="btnclick" /><!-- 添加一個屬性指定點擊事件的方法名 -->

</LinearLayout>

 

 在Activity實現btnCiick方法

 
 
 1 package com.example.helloworld;
 2 
 3 import android.app.Activity;
 4 import android.app.AlertDialog;
 5 import android.os.Bundle;
 6 import android.view.Menu;
 7 import android.view.MenuItem;
 8 import android.view.View;
 9 import android.view.View.OnClickListener;
10 import android.widget.Button;
11 import android.widget.TextView;
12 import android.widget.Toast;
13 
14 
15 public class MainActivity extends Activity {
16     
17     @Override
18     protected void onCreate(Bundle savedInstanceState) {
19         super.onCreate(savedInstanceState);
20         //加載活動頁面
21         setContentView(R.layout.test);
22     }
23     //實現btnClick方法
24     public void btnClick(View v){
25         Toast.makeText(this, "乃好,安卓1班", Toast.LENGTH_SHORT).show();
26         
27     }

 

 

運行結果同上

 

 

寫的不是很全面,但願對你們有幫助!!!

相關文章
相關標籤/搜索