仿微信充值金额输入框-自定义EditText

效果图:只能输入数字,并且第一位不能是小数点,如果第一位是小数点则默认在小数点前加0,且精确到小数点第二位,0.01

实现代码如下:

一、先看下布局代码:

<com.wallet.newnetclient.views.MoneyEditText
    android:inputType="number"
    android:textCursorDrawable="@null"
    android:maxLength="12"
    android:id="@+id/et_at_trad_money"
    android:hint=""
    android:background="@null"
    android:layout_gravity="center_vertical"
    android:textColor="@color/n_0_0_0"
    android:textSize="24sp"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />
此时注意:在这里设置editText的maxLength=“12”的属性不起作用,是现在不了输入字符的最大长度的。
解决方案:在代码中设置editText的过滤器。
private MoneyEditText etTradMoney;
etTradMoney.setFilters(new InputFilter[]{new InputFilter.LengthFilter(12)}); //即限定最大输入字符数为20
二、代码如下:
package com.haiyangyin.views;

import android.content.Context;
import android.text.Editable;
import android.text.InputType;
import android.text.TextUtils;
import android.text.TextWatcher;
import android.util.AttributeSet;
import android.widget.EditText;

/**
 * Created by yinhaiyang on 2017/4/21.
 * 自定义可输入金额的EditText(仿微信输入框效果)
 */

public class MoneyEditText extends EditText {
    private static final String TAG = "MoneyEditText";
    private boolean textChange;

    public MoneyEditText(Context context) {
        this(context, null);
    }

    public MoneyEditText(Context context, AttributeSet attrs) {
        this(context, attrs, 0);
    }

    public MoneyEditText(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        //设置可以输入小数
        setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL);
        setFocusable(true);
        setFocusableInTouchMode(true);
        //监听文字变化
        addTextChangedListener(new TextWatcher() {

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {

            }

            @Override
            public void beforeTextChanged(CharSequence s, int start, int count,
                                          int after) {

            }

            @Override
            public void afterTextChanged(Editable s) {
                if (!textChange) {
                    restrictText();
                }
                textChange = false;
            }
        });
    }


    /**
     * 将小数限制为2位
     */
    private void restrictText() {
        String input = getText().toString();
        if (TextUtils.isEmpty(input)) {
            return;
        }
        if (input.contains(".")) {
            int pointIndex = input.indexOf(".");
            int totalLenth = input.length();
            int len = (totalLenth - 1) - pointIndex;
            if (len > 2) {
                input = input.substring(0, totalLenth - 1);
                textChange = true;
                setText(input);
                setSelection(input.length());
            }
        }

        if (input.toString().trim().substring(0).equals(".")) {
            input = "0" + input;
            setText(input);
            setSelection(2);
        }

    }

    /**
     * 获取金额
     */
    public String getMoneyText() {
        String money = getText().toString();
        //如果最后一位是小数点
        if (money.endsWith(".")) {
            return money.substring(0, money.length() - 1);
        }
        return money;
    }
}

方式二:参考博客点击打开链接
http://www.jb51.net/article/99359.htm





  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要实现Android Studio仿微信登录,可以按照以下步骤进行: 1. 创建一个新的Android Studio项目,并在布局文件中添加登录界面所需的控件,如EditText、Button等。 2. 在Java代码中编写登录逻辑,包括获取用户输入的账号和密码,验证账号密码是否正确,以及跳转到主界面等操作。 3. 在布局文件中添加微信登录按钮,并在Java代码中编写微信登录逻辑,包括调用微信SDK进行授权登录,获取用户信息等操作。 4. 在AndroidManifest.xml文件中添加微信SDK的配置信息,包括AppID等。 5. 运行程序,测试登录功能是否正常。 需要注意的是,仿微信登录需要使用微信SDK进行授权登录,因此需要在微信开放平台上注册开发者账号,并创建应用,获取AppID等信息。同时,还需要在Android Studio中导入微信SDK,并在项目中进行配置。 ### 回答2: Android Studio 是一款非常优秀的 Android 开发工具,它提供了强大的开发工具和丰富的开发库,使得开发者可以快速、高效地进行 Android 应用开发。本文将介绍如何使用 Android Studio 来仿微信登录界面。 第一步:新建项目 首先,我们打开 Android Studio,选择 File -> New -> New Project,然后填写项目的名称和安装包名等基础信息,选择 API level 等选项,随后点击 Next 按钮。之后,我们可以选择生成空白活动、全屏活动、空白活动 + 片段等模板,这里我们选择生成空白活动的模板,然后点击 Finish 按钮完成新项目的建立。 第二步:导入微信登录界面 进入微信开发者平台,点击左侧菜单中的“开发”,然后选择“移动应用”,在弹出框中输入应用信息,点击确定按钮即可创建应用。创建完毕后,我们就可以获得微信 SDK,并将其导入到 Android Studio 项目中。 接下来,我们需要下载微信登录界面的资源文件,包括 logo、背景图、输入框等,将这些资源文件放置到项目的 res 目录中即可。接着,我们可以使用 Android Studio 的布局编辑器来搭建微信登录界面。 第三步:设置微信登录功能 要实现微信登录功能,我们需要在微信开发者平台创建应用后,获取到应用的 App ID 和 App Secret,这些信息将用于在 Android 应用中注册微信 SDK。在 Android Studio 中,我们需要将微信 SDK 集成到项目中,然后在 App 应用中注册 SDK,在启动微信登录功能的时候,调用微信登录 API 就可以了。 在注册微信 SDK 过程中,我们需要为应用签名,并将签名信息添加到微信开发者平台中,这样才能在应用中调用微信登录功能。最后,在微信登录成功后,我们需要将登录用户的信息保存在本地,以便于下次登录时直接获取。 总结 通过上述步骤,我们就可以快速、简单地创建一个仿微信登录界面的 Android 应用。虽然该应用只是一个简单的示例,但是它展示了 Android Studio 的强大功能和微信 SDK 的灵活性,希望对 Android 开发者有所帮助。 ### 回答3: Android Studio 是 Android 开发领域最为常用的集成开发环境,开发者可以在这个集成环境中开发 Android 应用。其中学习和仿微信登录可以给开发者提供一个很好的学习机会。 下面是如何仿微信登录的步骤: 步骤一:创建项目 首先打开 Android Studio,然后从菜单中选择 File => New => New Project。在创建新项目的面板中,输入应用名称和包名,然后选择项目目录和项目类型。 步骤二:UI 设计 要实现微信登录模块,第一步是设计用户界面。微信登录界面通常包括以下元素: 1. 用户头像 2. 用户名输入框 3. 密码输入框 4. 登录按钮 在 Android Studio 中可以使用 XML 文件来创建界面。可以使用 约束布局来布局元素。可以先从数据库或后端获取用户信息并显示用户头像,使用 EditText 来实现用户名和密码输入框,并使用 Button 添加一个登录按钮。 步骤三:连接后端 微信需要连接到后端服务器才能验证用户信息。可以使用 Retrofit 和 OkHttp 库来连接服务端。可以使用以下代码实现与后端服务器连接: private void login() { String userName = etUserName.getText().toString(); String password = etPassword.getText().toString(); //TODO: Implement Retrofit and OkHttp // Verify username and password and get response Call<LoginResponse> call = api.login(new LoginRequest(userName, password)); call.enqueue(new Callback<LoginResponse>() { @Override public void onResponse(Call<LoginResponse> call, Response<LoginResponse> response) { // Handle response } @Override public void onFailure(Call<LoginResponse> call, Throwable t) { // Handle error } }); } 步骤四:处理响应 根据服务端的响应,可以执行以下操作: - 成功登录: 获取返回的数据,并跳转到主界面。 - 登录失败: 显示错误消息。 可以使用以下代码来处理响应: @Override public void onResponse(Call<LoginResponse> call, Response<LoginResponse> response) { if (response.isSuccessful()) { LoginResponse loginResponse = response.body(); if (loginResponse.isSuccess()) { // Successfully login, go to main activity Intent intent = new Intent(getApplicationContext(), MainActivity.class); startActivity(intent); finish(); } else { // Login failed, show error message Toast.makeText(getApplicationContext(), loginResponse.getMessage(), Toast.LENGTH_SHORT).show(); } } else { // Response failed Toast.makeText(getApplicationContext(), "Response failed", Toast.LENGTH_SHORT).show(); } } 至此,就完成了仿微信登录的操作。通过这个项目,不仅可以学习 Retrofit 和 OkHttp 库,还可以了解如何使用 Android Studio 创建用户界面。 这个项目还可以帮助开发人员了解如何连接与后端服务端通信,如何处理响应,从而开发出更好的 Android 应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值