安卓开发学习-Android Studio-08-单击事件、Toast信息提示、ToggleButton
目录
- 简介
- 单击事件
- findViewById(id)
- Toast
- ToggleButton
- switch
简介
从这篇文章开始,我们将学习前后端交互。
单击事件
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();
}
}
});
效果同上。
Become_Lion: 点击选中日期的那个圈,颜色怎么改?