安卓EDITTEXT [英] android editText

查看:171
本文介绍了安卓EDITTEXT的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在寻找最简单的方法。(即不rewritting键盘,如果可能的话 - 或许使用现有那里)来创建一个EDITTEXT输入一个数字的密码。

这不是少见,但我没有发现任何标志组合来做到这一点。

由于这只是数字字符,我不是想要一个只有一位数字键盘(最好喜欢上了iphone, 4 * 3 = 12个按键 0 -10 + Del +确定),或至少是类似电话的键盘,用()+ * 和人物像,但使它们不能被写在文本编辑

我不介意使用去precated标志。

在特别号码| textPassword为inputType下不起作用(字符无法隐藏),的android:密码=真正的 的android:inputType下=手机的android:数字=整数 的android:密码=真正的产生相同的结果,但提示文本消失,特殊字符仍然是允许的。

感谢。


解决方案

  //声明
AlertDialog keyboardBuilder;
串号;
浮myvalue的;//建立键盘
LayoutInflater吹气=(LayoutInflater)this.getSystemService(LAYOUT_INFLATER_SERVICE);
查看布局= inflater.inflate(R.layout.keyboard,(ViewGroup中)findViewById(R.id.keyboardLayout));
keyboardBuilder =新AlertDialog.Builder(本).create();
keyboardBuilder.setView(布局);//当你的键盘出现
keyboardBuilder.show();//按键动作
公共无效KB1(视图v){号+ =1; keyboardBuilder.setTitle(数);}
    公共无效KB2(视图v){号码+ =2; keyboardBuilder.setTitle(数);}
    公共无效KB3(视图v){号码+ =3; keyboardBuilder.setTitle(数);}
    公共无效KB4(视图v){号+ =4; keyboardBuilder.setTitle(数);}
    公共无效KB5(视图v){号码+ =5; keyboardBuilder.setTitle(数);}
    公共无效kb6(视图v){号+ =6; keyboardBuilder.setTitle(数);}
    公共无效kb7(视图v){号+ =7; keyboardBuilder.setTitle(数);}
    公共无效KB8(视图v){号+ =8; keyboardBuilder.setTitle(数);}
    公共无效KB9(视图v){号码+ =9; keyboardBuilder.setTitle(数);}
    公共无效kbPoint(视图v){号+ =。 keyboardBuilder.setTitle(数);}
    公共无效KBE(视图v){号+ =E; keyboardBuilder.setTitle(数);}
    公共无效kbMoins(视图v){号+ = - ; keyboardBuilder.setTitle(数);}    公共无效kbDelete(视图V)
    {
        如果(number.length()大于0)
        {
            数= number.substring(0,number.length() - 1);
        }
        keyboardBuilder.setTitle(数);
    }    公共无效kbSave(视图V)
    {
        尝试
        {
            myvalue的= Float.parseFloat(将String.valueOf(编号)));
            keyboardBuilder.dismiss();
        }
        赶上(例外五)
        {
            Toast.makeText(这一点,禁价值,Toast.LENGTH_SHORT).show();
        }
    }
              机器人:ID =@ + ID / keyboardLayout
              机器人:方向=垂直
              机器人:layout_width =FILL_PARENT
              机器人:layout_height =FILL_PARENT>        <的LinearLayout机器人:ID =@ + ID / keyboardLayout
                      机器人:方向=横向
                      机器人:layout_width =FILL_PARENT
                      机器人:layout_height =FILL_PARENT
                      机器人:比重=中心>
                      <按钮的android:文本= - 安卓的onClick =kbMoins机器人:ID =@ + ID / hideVerticalDocks机器人:layout_height =65px的android:layout_width =85px机器人:TEXTSIZE =35px&GT ;< /按钮>
                      < TextView的机器人:ID =@ + ID /协商机器人:文本=机器人:比重=中心机器人:TEXTSIZE =35px机器人:layout_height =65px的android:layout_width =85px> < / TextView的>
                      < TextView的机器人:ID =@ + ID /协商机器人:文本=机器人:比重=中心机器人:TEXTSIZE =35px机器人:layout_height =65px的android:layout_width =85px> < / TextView的>
                      < TextView的机器人:ID =@ + ID /协商机器人:文本=机器人:比重=中心机器人:TEXTSIZE =35px机器人:layout_height =65px的android:layout_width =85px> < / TextView的>
                      < TextView的机器人:ID =@ + ID /协商机器人:文本=机器人:比重=中心机器人:TEXTSIZE =35px机器人:layout_height =65px的android:layout_width =85px> < / TextView的>
                      < TextView的机器人:ID =@ + ID /协商机器人:文本=机器人:比重=中心机器人:TEXTSIZE =35px机器人:layout_height =65px的android:layout_width =85px> < / TextView的>
                      <按钮的android:文本=1机器人:的onClick =KB1机器人:ID =@ + ID / hideVerticalDocks机器人:layout_height =65px的android:layout_width =85px机器人:TEXTSIZE =35px&GT ;< /按钮>
                      <按钮的android:文本=2机器人:的onClick =KB2机器人:ID =@ + ID / hideVerticalDocks机器人:layout_height =65px的android:layout_width =85px机器人:TEXTSIZE =35px&GT ;< /按钮>
        < / LinearLayout中>        <的LinearLayout机器人:ID =@ + ID / keyboardLayout
                      机器人:方向=横向
                      机器人:layout_width =FILL_PARENT
                      机器人:layout_height =FILL_PARENT
                      机器人:比重=中心>
                      <按钮的android:文本=。安卓的onClick =kbPoint机器人:ID =@ + ID / hideVerticalDocks机器人:layout_height =65px的android:layout_width =85px机器人:TEXTSIZE =35px>< /按钮>
                      < TextView的机器人:ID =@ + ID /协商机器人:文本=机器人:比重=中心机器人:TEXTSIZE =35px机器人:layout_height =65px的android:layout_width =85px> < / TextView的>
                      < TextView的机器人:ID =@ + ID /协商机器人:文本=机器人:比重=中心机器人:TEXTSIZE =35px机器人:layout_height =65px的android:layout_width =85px> < / TextView的>
                      < TextView的机器人:ID =@ + ID /协商机器人:文本=机器人:比重=中心机器人:TEXTSIZE =35px机器人:layout_height =65px的android:layout_width =85px> < / TextView的>
                      < TextView的机器人:ID =@ + ID /协商机器人:文本=机器人:比重=中心机器人:TEXTSIZE =35px机器人:layout_height =65px的android:layout_width =85px> < / TextView的>
                      < TextView的机器人:ID =@ + ID /协商机器人:文本=机器人:比重=中心机器人:TEXTSIZE =35px机器人:layout_height =65px的android:layout_width =85px> < / TextView的>
                      <按钮的android:文本=3安卓的onClick =KB3机器人:ID =@ + ID / hideVerticalDocks机器人:layout_height =65px的android:layout_width =85px机器人:TEXTSIZE =35px&GT ;< /按钮>
                      <按钮的android:文本=4安卓的onClick =KB4机器人:ID =@ + ID / hideVerticalDocks机器人:layout_height =65px的android:layout_width =85px机器人:TEXTSIZE =35px&GT ;< /按钮>
        < / LinearLayout中>        <的LinearLayout机器人:ID =@ + ID / keyboardLayout
                      机器人:方向=横向
                      机器人:layout_width =FILL_PARENT
                      机器人:layout_height =FILL_PARENT
                      机器人:比重=中心>
                      <按钮的android:文本=E安卓的onClick =KBE机器人:ID =@ + ID / hideVerticalDocks机器人:layout_height =65px的android:layout_width =85px机器人:TEXTSIZE =35px&GT ;< /按钮>
                      < TextView的机器人:ID =@ + ID /协商机器人:文本=机器人:比重=中心机器人:TEXTSIZE =35px机器人:layout_height =65px的android:layout_width =85px> < / TextView的>
                      < TextView的机器人:ID =@ + ID /协商机器人:文本=机器人:比重=中心机器人:TEXTSIZE =35px机器人:layout_height =65px的android:layout_width =85px> < / TextView的>
                      < TextView的机器人:ID =@ + ID /协商机器人:文本=机器人:比重=中心机器人:TEXTSIZE =35px机器人:layout_height =65px的android:layout_width =85px> < / TextView的>
                      < TextView的机器人:ID =@ + ID /协商机器人:文本=机器人:比重=中心机器人:TEXTSIZE =35px机器人:layout_height =65px的android:layout_width =85px> < / TextView的>
                      < TextView的机器人:ID =@ + ID /协商机器人:文本=机器人:比重=中心机器人:TEXTSIZE =35px机器人:layout_height =65px的android:layout_width =85px> < / TextView的>
                      <按钮的android:文本=5安卓的onClick =KB5机器人:ID =@ + ID / hideVerticalDocks机器人:layout_height =65px的android:layout_width =85px机器人:TEXTSIZE =35px&GT ;< /按钮>
                      <按钮的android:文本=6安卓的onClick =kb6机器人:ID =@ + ID / hideVerticalDocks机器人:layout_height =65px的android:layout_width =85px机器人:TEXTSIZE =35px&GT ;< /按钮>`
        < / LinearLayout中>        <的LinearLayout机器人:ID =@ + ID / keyboardLayout
                      机器人:方向=横向
                      机器人:layout_width =FILL_PARENT
                      机器人:layout_height =FILL_PARENT
                      机器人:比重=中心>
                      <按钮的android:文本=删除安卓的onClick =kbDelete机器人:ID =@ + ID / hideVerticalDocks机器人:layout_height =65px的android:layout_width =85px机器人:TEXTSIZE =20像素&GT ;< /按钮>
                      < TextView的机器人:ID =@ + ID /协商机器人:文本=机器人:比重=中心机器人:TEXTSIZE =35px机器人:layout_height =65px的android:layout_width =85px> < / TextView的>
                      < TextView的机器人:ID =@ + ID /协商机器人:文本=机器人:比重=中心机器人:TEXTSIZE =35px机器人:layout_height =65px的android:layout_width =85px> < / TextView的>
                      < TextView的机器人:ID =@ + ID /协商机器人:文本=机器人:比重=中心机器人:TEXTSIZE =35px机器人:layout_height =65px的android:layout_width =85px> < / TextView的>
                      < TextView的机器人:ID =@ + ID /协商机器人:文本=机器人:比重=中心机器人:TEXTSIZE =35px机器人:layout_height =65px的android:layout_width =85px> < / TextView的>
                      < TextView的机器人:ID =@ + ID /协商机器人:文本=机器人:比重=中心机器人:TEXTSIZE =35px机器人:layout_height =65px的android:layout_width =85px> < / TextView的>
                      <按钮的android:文本=7安卓的onClick =kb7机器人:ID =@ + ID / hideVerticalDocks机器人:layout_height =65px的android:layout_width =85px机器人:TEXTSIZE =35px&GT ;< /按钮>
                      <按钮的android:文本=8安卓的onClick =KB8机器人:ID =@ + ID / hideVerticalDocks机器人:layout_height =65px的android:layout_width =85px机器人:TEXTSIZE =35px&GT ;< /按钮>
        < / LinearLayout中>        <的LinearLayout机器人:ID =@ + ID / keyboardLayout
                      机器人:方向=横向
                      机器人:layout_width =FILL_PARENT
                      机器人:layout_height =FILL_PARENT
                      机器人:比重=中心>
                      <按钮的android:文本=保存安卓的onClick =kbSave机器人:ID =@ + ID / hideVerticalDocks机器人:layout_height =65px的android:layout_width =85px机器人:TEXTSIZE =20像素&GT ;< /按钮>
                      < TextView的机器人:ID =@ + ID /协商机器人:文本=机器人:比重=中心机器人:TEXTSIZE =35px机器人:layout_height =65px的android:layout_width =85px> < / TextView的>
                      < TextView的机器人:ID =@ + ID /协商机器人:文本=机器人:比重=中心机器人:TEXTSIZE =35px机器人:layout_height =65px的android:layout_width =85px> < / TextView的>
                      < TextView的机器人:ID =@ + ID /协商机器人:文本=机器人:比重=中心机器人:TEXTSIZE =35px机器人:layout_height =65px的android:layout_width =85px> < / TextView的>
                      < TextView的机器人:ID =@ + ID /协商机器人:文本=机器人:比重=中心机器人:TEXTSIZE =35px机器人:layout_height =65px的android:layout_width =85px> < / TextView的>
                      < TextView的机器人:ID =@ + ID /协商机器人:文本=机器人:比重=中心机器人:TEXTSIZE =35px机器人:layout_height =65px的android:layout_width =85px> < / TextView的>
                      <按钮的android:文本=9安卓的onClick =KB9机器人:ID =@ + ID / hideVerticalDocks机器人:layout_height =65px的android:layout_width =85px机器人:TEXTSIZE =35px&GT ;< /按钮>
                      <按钮的android:文本=0安卓的onClick =KB0机器人:ID =@ + ID / hideVerticalDocks机器人:layout_height =65px的android:layout_width =85px机器人:TEXTSIZE =35px&GT ;< /按钮>`
        < / LinearLayout中>
< / LinearLayout中>

如果你想隐藏的密码,您可以删除keyboardBuilder.setTitle。

的XML被糟糕了800 * 480的景观制作,随意更好写。

您也可以删除E, - 和。因为你只是希望它用于密码。

请注意,对于不与敬酒值的检查可以删除,但您可以通过检查密码的大小,例如更换。

I'm looking for the easiest way (ie without rewritting a keyboard, if possible - maybe using an existing one out there?) to create an editText to input a digit password.

It's not that uncommon, yet I found no flag combination to do that.

Since it's digit only characters, I either want a digit only keyboard (ideally like on the iphone, 4*3=12 keys, 0-10+del+ok), or at least a phone-like keyboard, with ()+* and characters like that, but so that they can't be written in the textEdit.

I don't mind using deprecated flags.

In particular, number|textPassword for inputType doesn't work (characters not hidden), android:password="true" android:inputType="phone" and android:numeric="integer" android:password="true" produce the same result, but the hint text disappears and special characters are still allowed.

Thanks.

解决方案

//declarations
AlertDialog keyboardBuilder;
String number;
float myValue;

//building the keyboard
LayoutInflater inflater = (LayoutInflater) this.getSystemService(LAYOUT_INFLATER_SERVICE);
View layout = inflater.inflate(R.layout.keyboard, (ViewGroup) findViewById(R.id.keyboardLayout));
keyboardBuilder = new AlertDialog.Builder(this).create();
keyboardBuilder.setView(layout);

//When you your keyboard to appear
keyboardBuilder.show();

//actions of keys
public void kb1(View v) {number += "1"; keyboardBuilder.setTitle(number);}
    public void kb2(View v) {number += "2"; keyboardBuilder.setTitle(number);}
    public void kb3(View v) {number += "3"; keyboardBuilder.setTitle(number);}
    public void kb4(View v) {number += "4"; keyboardBuilder.setTitle(number);}
    public void kb5(View v) {number += "5"; keyboardBuilder.setTitle(number);}
    public void kb6(View v) {number += "6"; keyboardBuilder.setTitle(number);}
    public void kb7(View v) {number += "7"; keyboardBuilder.setTitle(number);}
    public void kb8(View v) {number += "8"; keyboardBuilder.setTitle(number);}
    public void kb9(View v) {number += "9"; keyboardBuilder.setTitle(number);}
    public void kbPoint(View v) {number += "."; keyboardBuilder.setTitle(number);}
    public void kbE(View v) {number += "e"; keyboardBuilder.setTitle(number);}
    public void kbMoins(View v) {number += "-"; keyboardBuilder.setTitle(number);}

    public void kbDelete(View v)
    {
        if (number.length() > 0)
        {
            number = number.substring(0, number.length()-1);
        }
        keyboardBuilder.setTitle(number);
    }

    public void kbSave(View v) 
    {
        try
        {
            myValue = Float.parseFloat(String.valueOf(number)));
            keyboardBuilder.dismiss();
        }
        catch(Exception e)
        {
            Toast.makeText(this,"Forbidden value.", Toast.LENGTH_SHORT).show();
        }
    }


              android:id="@+id/keyboardLayout"
              android:orientation="vertical"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent">

        <LinearLayout android:id="@+id/keyboardLayout"
                      android:orientation="horizontal"
                      android:layout_width="fill_parent"
                      android:layout_height="fill_parent"
                      android:gravity="center">
                      <Button android:text="-" android:onClick="kbMoins" android:id="@+id/hideVerticalDocks" android:layout_height="65px" android:layout_width="85px" android:textSize="35px"></Button>
                      <TextView android:id="@+id/espace" android:text="" android:gravity="center" android:textSize="35px" android:layout_height="65px" android:layout_width="85px"> </TextView>
                      <TextView android:id="@+id/espace" android:text="" android:gravity="center" android:textSize="35px" android:layout_height="65px" android:layout_width="85px"> </TextView>
                      <TextView android:id="@+id/espace" android:text="" android:gravity="center" android:textSize="35px" android:layout_height="65px" android:layout_width="85px"> </TextView>
                      <TextView android:id="@+id/espace" android:text="" android:gravity="center" android:textSize="35px" android:layout_height="65px" android:layout_width="85px"> </TextView>
                      <TextView android:id="@+id/espace" android:text="" android:gravity="center" android:textSize="35px" android:layout_height="65px" android:layout_width="85px"> </TextView>
                      <Button android:text="1" android:onClick="kb1" android:id="@+id/hideVerticalDocks" android:layout_height="65px" android:layout_width="85px" android:textSize="35px"></Button>
                      <Button android:text="2" android:onClick="kb2" android:id="@+id/hideVerticalDocks" android:layout_height="65px" android:layout_width="85px" android:textSize="35px"></Button>
        </LinearLayout>

        <LinearLayout android:id="@+id/keyboardLayout"
                      android:orientation="horizontal"
                      android:layout_width="fill_parent"
                      android:layout_height="fill_parent"
                      android:gravity="center">
                      <Button android:text="." android:onClick="kbPoint" android:id="@+id/hideVerticalDocks" android:layout_height="65px" android:layout_width="85px" android:textSize="35px"></Button>
                      <TextView android:id="@+id/espace" android:text="" android:gravity="center" android:textSize="35px" android:layout_height="65px" android:layout_width="85px"> </TextView>
                      <TextView android:id="@+id/espace" android:text="" android:gravity="center" android:textSize="35px" android:layout_height="65px" android:layout_width="85px"> </TextView>
                      <TextView android:id="@+id/espace" android:text="" android:gravity="center" android:textSize="35px" android:layout_height="65px" android:layout_width="85px"> </TextView>
                      <TextView android:id="@+id/espace" android:text="" android:gravity="center" android:textSize="35px" android:layout_height="65px" android:layout_width="85px"> </TextView>
                      <TextView android:id="@+id/espace" android:text="" android:gravity="center" android:textSize="35px" android:layout_height="65px" android:layout_width="85px"> </TextView>
                      <Button android:text="3" android:onClick="kb3" android:id="@+id/hideVerticalDocks" android:layout_height="65px" android:layout_width="85px" android:textSize="35px"></Button>
                      <Button android:text="4" android:onClick="kb4" android:id="@+id/hideVerticalDocks" android:layout_height="65px" android:layout_width="85px" android:textSize="35px"></Button>
        </LinearLayout>

        <LinearLayout android:id="@+id/keyboardLayout"
                      android:orientation="horizontal"
                      android:layout_width="fill_parent"
                      android:layout_height="fill_parent"
                      android:gravity="center">
                      <Button android:text="e" android:onClick="kbE" android:id="@+id/hideVerticalDocks" android:layout_height="65px" android:layout_width="85px" android:textSize="35px"></Button>
                      <TextView android:id="@+id/espace" android:text="" android:gravity="center" android:textSize="35px" android:layout_height="65px" android:layout_width="85px"> </TextView>
                      <TextView android:id="@+id/espace" android:text="" android:gravity="center" android:textSize="35px" android:layout_height="65px" android:layout_width="85px"> </TextView>
                      <TextView android:id="@+id/espace" android:text="" android:gravity="center" android:textSize="35px" android:layout_height="65px" android:layout_width="85px"> </TextView>
                      <TextView android:id="@+id/espace" android:text="" android:gravity="center" android:textSize="35px" android:layout_height="65px" android:layout_width="85px"> </TextView>
                      <TextView android:id="@+id/espace" android:text="" android:gravity="center" android:textSize="35px" android:layout_height="65px" android:layout_width="85px"> </TextView>
                      <Button android:text="5" android:onClick="kb5" android:id="@+id/hideVerticalDocks" android:layout_height="65px" android:layout_width="85px" android:textSize="35px"></Button>
                      <Button android:text="6" android:onClick="kb6" android:id="@+id/hideVerticalDocks" android:layout_height="65px" android:layout_width="85px" android:textSize="35px"></Button>`
        </LinearLayout>

        <LinearLayout android:id="@+id/keyboardLayout"
                      android:orientation="horizontal"
                      android:layout_width="fill_parent"
                      android:layout_height="fill_parent"
                      android:gravity="center">
                      <Button android:text="delete" android:onClick="kbDelete" android:id="@+id/hideVerticalDocks" android:layout_height="65px" android:layout_width="85px" android:textSize="20px"></Button>
                      <TextView android:id="@+id/espace" android:text="" android:gravity="center" android:textSize="35px" android:layout_height="65px" android:layout_width="85px"> </TextView>
                      <TextView android:id="@+id/espace" android:text="" android:gravity="center" android:textSize="35px" android:layout_height="65px" android:layout_width="85px"> </TextView>
                      <TextView android:id="@+id/espace" android:text="" android:gravity="center" android:textSize="35px" android:layout_height="65px" android:layout_width="85px"> </TextView>
                      <TextView android:id="@+id/espace" android:text="" android:gravity="center" android:textSize="35px" android:layout_height="65px" android:layout_width="85px"> </TextView>
                      <TextView android:id="@+id/espace" android:text="" android:gravity="center" android:textSize="35px" android:layout_height="65px" android:layout_width="85px"> </TextView>
                      <Button android:text="7" android:onClick="kb7" android:id="@+id/hideVerticalDocks" android:layout_height="65px" android:layout_width="85px" android:textSize="35px"></Button>
                      <Button android:text="8" android:onClick="kb8" android:id="@+id/hideVerticalDocks" android:layout_height="65px" android:layout_width="85px" android:textSize="35px"></Button>
        </LinearLayout>

        <LinearLayout android:id="@+id/keyboardLayout"
                      android:orientation="horizontal"
                      android:layout_width="fill_parent"
                      android:layout_height="fill_parent"
                      android:gravity="center">
                      <Button android:text="save" android:onClick="kbSave" android:id="@+id/hideVerticalDocks" android:layout_height="65px" android:layout_width="85px" android:textSize="20px"></Button>
                      <TextView android:id="@+id/espace" android:text="" android:gravity="center" android:textSize="35px" android:layout_height="65px" android:layout_width="85px"> </TextView>
                      <TextView android:id="@+id/espace" android:text="" android:gravity="center" android:textSize="35px" android:layout_height="65px" android:layout_width="85px"> </TextView>
                      <TextView android:id="@+id/espace" android:text="" android:gravity="center" android:textSize="35px" android:layout_height="65px" android:layout_width="85px"> </TextView>
                      <TextView android:id="@+id/espace" android:text="" android:gravity="center" android:textSize="35px" android:layout_height="65px" android:layout_width="85px"> </TextView>
                      <TextView android:id="@+id/espace" android:text="" android:gravity="center" android:textSize="35px" android:layout_height="65px" android:layout_width="85px"> </TextView>
                      <Button android:text="9" android:onClick="kb9" android:id="@+id/hideVerticalDocks" android:layout_height="65px" android:layout_width="85px" android:textSize="35px"></Button>
                      <Button android:text="0" android:onClick="kb0" android:id="@+id/hideVerticalDocks" android:layout_height="65px" android:layout_width="85px" android:textSize="35px"></Button>`
        </LinearLayout>


</LinearLayout>

If you want to hide the password you can delete the keyboardBuilder.setTitle.

The xml was poorly made for a 800*480 landscape, feel free to write it better.

You can also delete the "e", "-" and "." since you just want it for password use.

Note that the checking for not a value with the toast can be deleted, but you can replace it by checking password size for example.

这篇关于安卓EDITTEXT的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆