Android基本控件——Toast

本文介绍了Toast的基本用法,包括如何显示简单消息、如何在Toast中加入图片、如何使用自定义布局来展示复杂的内容以及如何避免重复点击导致多次弹出的问题。

一、基本用法

//参数一:上下文
//参数二:Toast要显示的内容
//参数三:Toast显示的时间
Toast.makeText(MainActivity.this,"Toast",Toast.LENGTH_SHORT).show();

二、带图片的Toast

Toast toast = Toast.makeText(MainActivity.this, "Toast", Toast.LENGTH_SHORT);
//通过toast创建LinearLayout容器
LinearLayout layout = (LinearLayout) toast.getView();
//创建图片
ImageView iv = new ImageView(MainActivity.this);
iv.setImageResource(R.mipmap.ic_launcher);
//添加图片到Toast布局
layout.addView(iv);
toast.show();

三、使用自定义布局显示Toast

LayoutInflater inflater = getLayoutInflater();
View view1 = inflater.inflate(R.layout.layout_toast, null);
Toast toast = new Toast(MainActivity.this);
toast.setView(view1);
toast.setDuration(Toast.LENGTH_SHORT);
toast.show();

四、防止重复点击弹出多次

1,首先将Toast封装成一个公共方法,判断当Toast为空时新建Toast对象,当Toast不为空时,设置Toast的内容。

封装成方法:

public class Utils {

    private static Toast toast;

    public static void showToast(Context context, String content) {
        if (toast == null) {
            toast = Toast.makeText(context, content, Toast.LENGTH_SHORT);
        } else {
            toast.setText(content);
        }
        toast.show();
    }
}

调用:

Utils.showToast(this, "点击了按钮");
### Android 常用基本控件概述 #### TextView 文本显示控件 `TextView`用于向用户提供文字性的提示。可以设置文本内容、字体大小、颜色等属性。支持通过 `drawableLeft`, `drawableRight`, `drawableTop`, 和 `drawableBottom` 属性来添加图片。 ```xml <TextView android:id="@+id/textView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="这是一个带有左边图标的文字" android:drawableLeft="@mipmap/ic_launcher"/> ``` #### EditText 输入框控件 允许用户输入文本数据,常用于表单填写场景。可以通过设置 `android:focusableInTouchMode="true"` 让其获取焦点并自动弹出软键盘[^3]。 ```xml <EditText android:id="@+id/editText" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="请输入您的姓名" android:singleLine="true"/> ``` #### Button 按钮控件 点击触发事件的主要方式之一。可自定义背景样式、圆角半径以及按下效果等视觉特性。 ```xml <Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="提交"/> ``` #### ImageView 图片展示控件 专门用来加载和显示图像资源。可通过调整 `scaleType` 来改变图片适应模式,比如居中裁剪(`centerCrop`) 或者适合屏幕(`fitCenter`) 显示。 ```xml <ImageView android:id="@+id/imageView" android:layout_width="100dp" android:layout_height="100dp" android:src="@mipmap/ic_launcher" android:scaleType="centerInside"/> ``` #### CompoundButton 复合型按钮 包括三种具体实现形式——`RadioButton`(单选按钮),`CheckBox`(多选框) 及 `Switch`(开关)[^1]。这些组件通常配合状态监听器一起工作,在界面交互逻辑处理方面发挥重要作用。 ```java // Java代码片段:注册CompoundButton.OnCheckedChangeListener接口实例作为监听对象 radioButton.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { Toast.makeText(MainActivity.this,"选项被"+ (isChecked?"选中":"取消"),Toast.LENGTH_SHORT).show(); } }); ``` #### ProgressBar 进度指示条 分为水平方向和圆形两种风格,适用于长时间操作期间给用户提供反馈信息的情景下。除了常规的百分比进度外,还存在不确定式的动画效果可供选择。 ```xml <!-- 不定式 --> <ProgressBar style="?android:attr/progressBarStyleSmall" android:layout_width="wrap_content" android:layout_height="wrap_content"/> <!-- 定量式 --> <ProgressBar style="?android:attr/progressBarStyleHorizontal" android:layout_width="match_parent" android:layout_height="wrap_content" android:max="100" android:progress="75"/> ``` #### Spinner 下拉列表控件 提供了一个简单的菜单供用户从中挑选一项或多项内容。内部依赖于适配器(Adapter)机制填充数据源,并能响应用户的项目选择动作。 ```java ArrayAdapter<String> adapter = new ArrayAdapter<>(context, android.R.layout.simple_spinner_item, items); adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); spinner.setAdapter(adapter); spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener(){ ... }); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值