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>

运行截图:
在这里插入图片描述

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