简介

从这篇文章开始,我们将学习前后端交互。

单击事件

findViewById(id)

通过此函数来获取前端事件。
例如我前端定义了一个button:

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

我们就可以用如下语句来获取此button

Button confirm;
confirm = findViewById(R.id.button);

Toast

这是安卓开发中最经常用的提示之一。比如:在这里插入图片描述
它的实现也非常简单:通过makeText()创建出一个Toast对象,然后调用show()方法将Toast显示出来即可。makeText(类名.this, 要显示的内容, 持续时间)
例如:

Toast.makeText(MainActivity.this, "内容", Toast.LENGTH_SHORT).show();

现在我们还是用到之前的登录界面,为确认按钮设置Toast,即点击确认按钮时弹出Toast显示“确认”:
现在我们使用上面的代码获取confirm button,然后在
MainActivity.java中添加如下代码:

confirm.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(MainActivity.this,"确认", Toast.LENGTH_LONG).show();
            }
        });

运行效果:
在这里插入图片描述
现在,我们再做些改进:当点击确认按钮时显示用户名输入框中输入的内容:
同样先获取用户名输入框:

EditText userName;
 userName = findViewById(R.id.editTextTextPersonName);

然后将Toast显示的内容修改为用户名输入框的内容:

confirm.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(MainActivity.this,userName.getText().toString(), Toast.LENGTH_LONG).show();
            }
        });

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

ToggleButton

即开关按钮。
这里直接上例子:
先建一个工程,添加一个toggleButton和一个imageView,我们要实现开关按钮两种状态分别显示不同的图片。
MainActivity.java:

 ToggleButton toggleButton = findViewById(R.id.toggleButton);
        ImageView imageView = findViewById(R.id.imageView);
        toggleButton.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                if (isChecked){
                    imageView.setImageResource(R.drawable.kobe);
                    Toast.makeText(MainActivity.this,"kobe",Toast.LENGTH_SHORT).show();
                }else {
                    imageView.setImageResource(R.drawable.moto);
                    Toast.makeText(MainActivity.this,"moto",Toast.LENGTH_SHORT).show();
                }
            }
        });

activity_main.xml:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <ToggleButton
        android:textOn="@string/kobe"
        android:textOff="@string/moto"
        android:id="@+id/toggleButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/kobe"
        app:layout_constraintBottom_toTopOf="@+id/imageView"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <ImageView
        android:id="@+id/imageView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:srcCompat="@drawable/kobe" />
</androidx.constraintlayout.widget.ConstraintLayout>

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

在这里插入图片描述

switch

另一种开关。
xml:

 <Switch
        android:id="@+id/switch1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginEnd="176dp"
        android:text="Switch"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.914" />

java:

Switch aSwitch = findViewById(R.id.switch1);
aSwitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                if (isChecked){
                    imageView.setImageResource(R.drawable.kobe);
//                    Toast.makeText(MainActivity.this,"kobe",Toast.LENGTH_SHORT).show();
                }else {
                    imageView.setImageResource(R.drawable.moto);
//                    Toast.makeText(MainActivity.this,"moto",Toast.LENGTH_SHORT).show();
                }
            }
        });

效果同上。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐