栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Android 点击按钮出现弹窗

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Android 点击按钮出现弹窗

今天介绍几种常用的弹窗

1.最常用的一种弹窗

Toast.makeText(HomeActivity2.this, "设置为自动模式", Toast.LENGTH_SHORT).show();

2.第二种

这个是自己写一个方式,就是使用方法

Toastutil.showMsg(HomeActivity2.this,"设置为自动模式");

首先在Java中新建一个util文件,然后写一个Toasttutil,用于之后直接调用即可

 这个就是Toasttutil中的代码

package util;

import android.content.Context;
import android.widget.Toast;

//

public class Toastutil {
    public static Toast mtoast;
    public static void showMsg(Context context,String msg){
        if (mtoast==null){
            mtoast = Toast.makeText(context,msg,Toast.LENGTH_SHORT);
        }else {
            mtoast.setText(msg);
        }
        mtoast.show();
    }
}

 使用这个方法的弹窗如果在短时间内多次点击,那么就只会出现一次弹窗,而且不管按哪个按钮,首次按下去弹出的弹窗会显示APP名称,所以这种我用的不是很多。

 3.第三种

这是在网上找到的一种方法,也是自定义的方法

Toast01.showShort(HomeActivity2.this,"设置为自动模式");

 同样的是在Util中新建一个Toasttutil01文件

附上Toasttuil01中的代码 

package util;

import android.content.Context;
import android.widget.Toast;

//

public class Toast01 {
    public static Toast mToast;
    public static void showShort(Context context, CharSequence message) {
            Toast mToast = Toast.makeText(context, null, Toast.LENGTH_SHORT);
            mToast.setText(message);
            mToast.show();
    }

}

 使用第三种的方法可以不显示APP名称,但是不能解决短时间内多次点击只显示一次的问题,那么有没有什么办法能既让APP名不显示,又能让短时间内多次点击只单次显示呢!答案是当然有的。

        最后这个也是自定义一个方法,但是这个是设置一下让按钮的两次之间的点击间隔时间,那么这样设计就可以解决第二种第三种弹窗出现的问题了。

 

 这个是代码

package util;

//

public  class Utils {
    // 两次点击按钮之间的点击间隔不能少于1000毫秒
    private static final int MIN_CLICK_DELAY_TIME = 2000;
    private static long lastClickTime;

    public static boolean isFastClick() {
        boolean flag = false;
        long curClickTime = System.currentTimeMillis();
        if ((curClickTime - lastClickTime) >= MIN_CLICK_DELAY_TIME) {
            flag = true;
        }
        lastClickTime = curClickTime;
        return flag;
    }
}


 

这种就是需要结合第三种的弹窗使用

首先在按钮的点击事件中调用这第四种方法,然后再在Utils.isFastClick()中调用弹窗方法三即可

if (Utils.isFastClick()){                   // 两次点击按钮之间的点击间隔不能少于1000毫秒
                        Toast01.showShort(HomeActivity2.this,"设置为手动模式");  //使用Toastuil.showShort弹窗不会显示APP名称
                    }

 

最后附上MainActivity中的代码

package com.example.myapp;

import androidx.appcompat.app.AppCompatActivity;
import util.Toast01;
import util.Utils;

import android.annotation.SuppressLint;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;


public class HomeActivity2 extends AppCompatActivity {

    private TextView mtv_zhu2;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_home2);

        mtv_zhu2 = findViewById(R.id.tv_zhu2);
        mtv_zhu2.setSelected(true);
        Button mbtn_sd = findViewById(R.id.btn_sd);
        Button mbtn_zd = findViewById(R.id.btn_zd);

        onClick onClick = new onClick();
        mbtn_sd.setonClickListener(onClick);
        mbtn_zd.setonClickListener(onClick);

    }

    class onClick implements View.OnClickListener{
        @SuppressLint("NonConstantResourceId")
        @Override
        public void onClick(View view) {
            switch (view.getId()){
                case R.id.btn_sd:
                    mtv_zhu2.setText("手动模式         手动模式");

                    if (Utils.isFastClick()){                   // 两次点击按钮之间的点击间隔不能少于1000毫秒
                        Toast01.showShort(HomeActivity2.this,"设置为手动模式");  //使用Toastuil.showShort弹窗不会显示APP名称
                    }
                    break;
                case R.id.btn_zd:
                    mtv_zhu2.setText("自动模式         自动模式");

                    if (Utils.isFastClick()){
                        Toast01.showShort(HomeActivity2.this,"设置为自动模式");
                    }
                    break;
            }
        }
    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/314691.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号