Android事件處理(有例子)

Android事件處理(有例子)

事件綁定有好幾種方法

第一種:
xml文件中指定onClick的方法名,然後在對應的java中實現該方法

.xml

  android:onClick="click"

.java

    public void click(View V){
        //你的操作
        textview.setText(edittext.getText());
    }

第二種:
xml文件中給指定一個id,然後在對應的java文件中通過id獲取該元素,再綁定一個事件
.xml

android:id="@+id/btn"

.java

Button button = (Button)findViewById(R.id.btn);
button.setOnClickListener(new View.OnClickListener() {
      @Override
      public void onClick(View v) {
          textview.setText(edittext.getText());
          }
})

第三種:
xml文件中給指定一個id,然後在對應的java文件要繼承OnClickListener 類,再實現它的方法即可。

.xml

android:id="@+id/btn"

.java

public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    //定義一個button作爲成員變量
    private Button button;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //獲取頁面的button將其賦值到成員變量中
        button = (Button)findViewById(R.id.btn);
        //將事件綁定到button上
        button.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        textview.setText(edittext.getText());
    }



}

三種方法各有優勢。

下面給一個例子

代碼:
.java

package com.example.layouttest;

import androidx.appcompat.app.AppCompatActivity;

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

public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    //定義一個TextView作爲成員變量
    private TextView textview;
    //定義一個EditText作爲成員變量
    private EditText edittext;
    //定義一個button作爲成員變量
    private Button button;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //獲取頁面的TextView將其賦值到成員變量中
        textview = (TextView)findViewById(R.id.tv);
        //獲取頁面的EditText將其賦值到成員變量中
        edittext = (EditText)findViewById(R.id.et);
        //獲取頁面的button將其賦值到成員變量中
        button = (Button)findViewById(R.id.btn);

        //將事件綁定到button上
        button.setOnClickListener(this);

/*        //爲按鈕設置監聽器,並用匿名類實現(第二種方法)
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                textview.setText(edittext.getText());
            }
        });*/

    }

//第三種方法
    @Override
    public void onClick(View v) {
        textview.setText(edittext.getText());
    }


/*
//第一種方法
//將頁面EditText中的輸入的text賦值到TextView上
    public void click(View V){
        textview.setText(edittext.getText());
    }*/
}

.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    >

    <TextView
        android:id="@+id/tv"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="TextView"
        android:textSize="30dp"
    >

    </TextView>

    <EditText
        android:id="@+id/et"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        >

    </EditText>

    <Button
        android:id="@+id/btn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="確定"
        android:layout_gravity="center"
        android:onClick="click"
        >

    </Button>

</LinearLayout>

運行截圖:
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章