android 自定义纯数字键盘输入
来源:互联网 发布:淘宝手机店铺装修尺寸 编辑:程序博客网 时间:2024/06/16 03:57
很久没更新博客了,最近在做一个新项目,遇到了很多坑,现将遇到的坑学到的东西一个个记录下来,方便自己和大家共同学习。后面还会抽出时间将项目中遇到的其他问题一一上传分析。
项目中需要使用自定义数字键盘输入金额,效果图如下
最初想偷懒在网上找个 demo copy 进项目,无奈网上的坑一个比一个多,还是自己瞎折腾吧,废话少说,开车!
首先是界面部分,代码如下:
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.ruicheng.keydemo.MainActivity"> <EditText android:id="@+id/editText1" android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="8dp" android:singleLine="true" android:drawablePadding="5dp" android:layout_marginLeft="5dp" android:layout_marginRight="5dp" android:ems="10" android:textSize="24sp" android:hint="0.00" tools:layout_editor_absoluteY="0dp" tools:layout_editor_absoluteX="5dp"> </EditText> <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:background="@color/white"> <View android:layout_width="match_parent" android:layout_height="0.5dp" android:background="@color/text_dark_gray" /> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" > <LinearLayout android:layout_width="fill_parent" android:layout_height="0dp" android:layout_weight="2" android:orientation="horizontal" android:visibility="visible" android:id="@+id/linearlayout" > <LinearLayout android:layout_width="0dp" android:layout_height="fill_parent" android:layout_weight="4" android:orientation="vertical" > <LinearLayout android:layout_width="fill_parent" android:layout_height="0dp" android:layout_weight="1" > <TextView android:id="@+id/btn_price_1" android:layout_width="68.33dp" android:layout_height="52dp" android:layout_weight="1" android:textColor="@android:color/black" android:textSize="18dp" android:text="1" android:gravity="center" /> <View android:layout_width="0.5dp" android:layout_height="match_parent" android:background="@color/text_dark_gray"/> <TextView android:id="@+id/btn_price_2" android:layout_width="68.33dp" android:layout_height="52dp" android:layout_weight="1" android:textColor="@android:color/black" android:textSize="18dp" android:text="2" android:gravity="center" /> <View android:layout_width="0.5dp" android:layout_height="match_parent" android:background="@color/text_dark_gray" /> <TextView android:id="@+id/btn_price_3" android:layout_width="68.33dp" android:layout_height="52dp" android:layout_weight="1" android:textColor="@android:color/black" android:textSize="18dp" android:text="3" android:gravity="center" /> <View android:layout_width="0.5dp" android:layout_height="match_parent" android:background="@color/text_dark_gray" /> </LinearLayout> <View android:layout_width="match_parent" android:layout_height="0.5dp" android:background="@color/text_dark_gray" /> <LinearLayout android:layout_width="fill_parent" android:layout_height="0dp" android:layout_weight="1" > <TextView android:layout_width="68.33dp" android:layout_height="52dp" android:layout_weight="1" android:textColor="@android:color/black" android:textSize="18dp" android:gravity="center" android:id="@+id/btn_price_4" android:text="4" /> <View android:layout_width="0.5dp" android:layout_height="match_parent" android:background="@color/text_dark_gray" /> <TextView android:id="@+id/btn_price_5" android:layout_width="68.33dp" android:layout_height="52dp" android:layout_weight="1" android:textColor="@android:color/black" android:textSize="18dp" android:gravity="center" android:text="5" /> <View android:layout_width="0.5dp" android:layout_height="match_parent" android:background="@color/text_dark_gray"/> <TextView android:id="@+id/btn_price_6" android:layout_width="68.33dp" android:layout_height="52dp" android:layout_weight="1" android:text="6" android:textColor="@android:color/black" android:textSize="18dp" android:gravity="center"/> <View android:layout_width="0.5dp" android:layout_height="match_parent" android:background="@color/text_dark_gray" /> </LinearLayout> <View android:layout_width="match_parent" android:layout_height="0.5dp" android:background="@color/text_dark_gray"/> <LinearLayout android:layout_width="fill_parent" android:layout_height="0dp" android:layout_weight="1" > <TextView android:id="@+id/btn_price_7" android:layout_width="68.33dp" android:layout_height="52dp" android:layout_weight="1" android:textColor="@android:color/black" android:textSize="18dp" android:gravity="center" android:text="7" /> <View android:layout_width="0.5dp" android:layout_height="match_parent" android:background="@color/text_dark_gray"/> <TextView android:id="@+id/btn_price_8" android:layout_width="68.33dp" android:layout_height="52dp" android:layout_weight="1" android:textColor="@android:color/black" android:textSize="18dp" android:gravity="center" android:text="8" /> <View android:layout_width="0.5dp" android:layout_height="match_parent" android:background="@color/text_dark_gray" /> <TextView android:id="@+id/btn_price_9" android:layout_width="68.33dp" android:layout_height="52dp" android:layout_weight="1" android:textColor="@android:color/black" android:textSize="18dp" android:gravity="center" android:text="9" /> <View android:layout_width="0.5dp" android:layout_height="match_parent" android:background="@color/text_dark_gray"/> </LinearLayout> <View android:layout_width="match_parent" android:layout_height="0.5dp" android:background="@color/text_dark_gray"/> <LinearLayout android:layout_width="fill_parent" android:layout_height="0dp" android:layout_weight="1" android:orientation="horizontal" > <TextView android:id="@+id/btn_count_00" android:layout_width="68.33dp" android:layout_height="52dp" android:layout_weight="1" android:textSize="18dp" android:text="00" android:textColor="@android:color/black" android:gravity="center" /> <View android:layout_width="0.5dp" android:layout_height="match_parent" android:background="@color/text_dark_gray" /> <TextView android:id="@+id/btn_price_0" android:layout_width="68.33dp" android:layout_height="52dp" android:layout_weight="1" android:textColor="@android:color/black" android:textSize="18dp" android:gravity="center" android:text="0" /> <View android:layout_width="0.5dp" android:layout_height="match_parent" android:background="@color/text_dark_gray"/> <TextView android:id="@+id/btn_price_point" android:layout_width="68.33dp" android:layout_height="52dp" android:textColor="@android:color/black" android:textSize="18dp" android:layout_weight="1" android:gravity="center" android:text="." /> <View android:layout_width="0.5dp" android:layout_height="match_parent" android:background="@color/text_dark_gray"/> </LinearLayout> </LinearLayout> <LinearLayout android:layout_width="0dp" android:layout_height="fill_parent" android:layout_weight="1" android:orientation="horizontal" > <LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <LinearLayout android:layout_width="match_parent" android:layout_height="51.6dp" android:gravity="center" android:id="@+id/btn_price_del" > <TextView android:id="@+id/btn_price_clear" android:text="删除" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout> <View android:layout_width="match_parent" android:layout_height="0.5dp" android:background="@color/text_dark_gray"/> <TextView android:id="@+id/btn_price_shoukuan" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/calculator_button_bg" android:textSize="18dp" android:gravity="center" android:text="收款" /> </LinearLayout> </LinearLayout> </LinearLayout> </LinearLayout> </RelativeLayout></RelativeLayout>
接下来就是activity里面的逻辑代码了:
package com.example.ruicheng.keydemo;import android.content.Intent;import android.graphics.Color;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.text.Editable;import android.text.TextUtils;import android.text.TextWatcher;import android.view.View;import android.widget.EditText;import android.widget.LinearLayout;import android.widget.TextView;import android.widget.Toast;public class MainActivity extends AppCompatActivity { EditText editText; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); init(); } private void init(){ editText = (EditText)findViewById(R.id.editText1); editText.setEnabled(false); editText.addTextChangedListener(new TradeTextWatcher(editText, null)); TextView[] mBtnkey_digits = new TextView[10]; for (int i = 0; i < 10; i++) { String strid = String.format("btn_price_%d", i); mBtnkey_digits[i] = (TextView)findViewById(this .getResources().getIdentifier(strid, "id", this.getPackageName())); mBtnkey_digits[i].setOnClickListener(mClickListener); } TextView mBtnKey_sk = (TextView)findViewById(R.id.btn_price_shoukuan); TextView mBtnKey_00 = (TextView)findViewById(R.id.btn_count_00); TextView mBtnKey_point = (TextView)findViewById(R.id.btn_price_point); LinearLayout mBtnKey_del = (LinearLayout)findViewById(R.id.btn_price_del); mBtnKey_00.setOnClickListener(mClickListener); mBtnKey_point.setOnClickListener(mClickListener); mBtnKey_del.setOnClickListener(mClickListener); mBtnKey_sk.setOnClickListener(mClickListener); } private View.OnClickListener mClickListener = new View.OnClickListener() { @Override public void onClick(View view) { int id = view.getId(); if (id == R.id.btn_price_1 || id == R.id.btn_price_2 || id == R.id.btn_price_3 || id == R.id.btn_price_4 || id == R.id.btn_price_5 || id == R.id.btn_price_6 || id == R.id.btn_price_7 || id == R.id.btn_price_8 || id == R.id.btn_price_9 || id == R.id.btn_price_0 || id == R.id.btn_count_00) { String input = ((TextView) view).getText().toString(); if (input == null){ editText.setText(input); }else if (input != null) { String strTmp = editText.getText().toString(); strTmp += input; editText.setText(strTmp); } editText.setTextSize(30); editText.setTextColor(Color.BLACK); }else if (id == R.id.btn_price_point)//点 { String inputa = ((TextView) view).getText().toString(); if (inputa == null){ editText.setText(inputa); }else if (inputa != null) { String strTmp = editText.getText().toString(); strTmp += inputa; editText.setText(strTmp); } editText.setTextSize(30); editText.setTextColor(Color.BLACK); } else if (id == R.id.btn_price_shoukuan) {//收款 Toast.makeText(MainActivity.this, "点击了收款", Toast.LENGTH_SHORT).show(); } else if (id == R.id.btn_price_del) {//清除 if (editText.getText().length() > 0) { String strTmp = editText.getText().toString(); strTmp = strTmp.substring(0, strTmp.length() - 1); editText.setText(strTmp); }else { editText.setText(""); } editText.setTextSize(30); editText.setTextColor(Color.BLACK); } } }; public static class TradeTextWatcher implements TextWatcher { private EditText mEditText;// private TextView mTextView; public TradeTextWatcher(EditText edit, TextView text) { mEditText = edit;// mTextView = text; } @Override public void afterTextChanged(Editable arg0) { int len = mEditText.getText().length(); mEditText.setSelection(len); } @Override public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) { } @Override public void onTextChanged(CharSequence s, int arg1, int arg2, int arg3) { } }}
运行结果如下
逻辑很清楚了,大家直接看源码吧
源码下载
阅读全文
0 0
- android 自定义纯数字键盘输入
- Android 自定义数字键盘(三)自定义输入框
- 【Android自定义控件】密码输入框+数字键盘的实现
- android自定义随机数字键盘
- Android 自定义数字键盘
- android自定义 数字键盘2
- Android自定义数字键盘
- android自定义数字键盘
- android自定义view(自定义数字键盘)
- Android自定义数字键盘简单封装
- Android 自定义数字键盘(一)
- Android popwindow 实现自定义数字键盘
- Android 自定义的数字键盘 支持随意拖动 和稳定的字符输入的控件
- 自定义键盘(纯数字键盘、小数点键盘、身份证键盘)
- 自定义数字键盘
- 自定义数字键盘
- 自定义数字键盘
- 自定义数字键盘
- Android apk安全监测及加固方案
- SSH 在本地执行远程机器上的命令
- solr6.6环境搭建
- python 实现Hadoop的partitioner和二次排序
- SpringMVC的拦截器问题
- android 自定义纯数字键盘输入
- 瀑布流
- struts2学习中遇到的坑之${pageContext.request.contextPath}错误
- myeclipse用ctrl+点击不能查看servlet源码
- tomcat 基于maven plugins实现热部署
- 从服务器下载资源一
- ScrollView上拉加载实现
- Intent跳转总结
- mobi文件Android手机怎么打开,用静读天下,在应用商店下载