android EditText密码框,怎么让它只显示密码点,不让它显示最后一位输入的字符?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android EditText密码框,怎么让它只显示密码点,不让它显示最后一位输入的字符?相关的知识,希望对你有一定的参考价值。

你们看,他会延时显示最后输入的那一位字符,这会存在安全隐患,怎么才能使它直接显示密码点啊。
在线等。。。求帮助
谢谢各位了,我终于解决了,原来这是在模拟器里面设置的,和程序无关联的。

布局里加上这一句:
android:inputType="textPassword"就好了。

方法1::

在布局文件中设置文本编辑框属性作字符数限制,android:maxLength="10" 即限制最大输入字符个数为10。

方法2:在代码中使用InputFilter 进行过滤
public class MyActivity extends Activity 


private EditText text;
@Override
public void onCreate(Bundle savedInstanceState)

super.onCreate(savedInstanceState);
setContentView(R.layout.main);  

text = (EditText)findViewById(R.id.text);
text .setFilters(new InputFilter[]new InputFilter.LengthFilter(20));
  


方法3:利用 TextWatcher 进行监听
继承TextWatcher接口,对输入进行监听
pblic class MaxLengthWatcher implements TextWatcher

  

private int maxLen = 0;
private EditText editText = null;  

public MaxLengthWatcher(int maxLen, EditText editText) 
this.maxLen = maxLen;
this.editText = editText;
  

public void onTextChanged(CharSequence s, int start, int before, int count) 
// TODO Auto-generated method stub
Editable editable = editText.getText();
int len = editable.length();
if(len > maxLen)

int selEndIndex = Selection.getSelectionEnd(editable);
String str = editable.toString();
//截取新字符串
String newStr = str.substring(0,maxLen);
editText.setText(newStr);
editable = editText.getText();  

//新字符串的长度
int newLen = editable.length();
//旧光标位置超过字符串长度
if(selEndIndex > newLen)

selEndIndex = editable.length();

//设置新光标所在的位置
Selection.setSelection(editable, selEndIndex);  





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



@Override
public void afterTextChanged(Editable s) 
  



在activity中为EditText添加监听
public class MyActivity extends Activity 
private EditText text;
@Override
public void onCreate(Bundle savedInstanceState) 
super.onCreate(savedInstanceState);
setContentView(R.layout.main);  

text = (EditText) findViewById(R.id.entry);
//限制为10
text.addTextChangedListener(new MaxLengthWatcher(10, editText));  

  

参考技术A 你可以这样搞。。。自己监听键盘然后用户输入的你在后台记住。。。但是edittext你自己设置一个点或者*号都可以。。。希望能帮到你 参考技术B 这个和手机有关系吧android:inputType="textPassword"这句话是不起作用的,有些手机不显示,而有些手机是要显示的追问

没用 每次输入一个字符还是会显示一会儿

参考技术C 布局里加上这一句:
android:inputType="textPassword"追问

没用 每次输入一个字符还是会显示一会儿

追答

正常的不就是这样的么?不然别人怎么知道自己输了啥? 如果你真要一开始就不显示,那就监控edittext内容改变,然后settext成星号吧

参考技术D 哥们,手机毕竟不是电脑,输入密码准确度那么高。
其实大多数的手机应用输入密码时都是这个样子的需要延迟一会,让用户确认自己输入是否正确。
推荐你还是别改了,以后用户体验会很差的

android布局_EditText

实现内容:

1.如何使用圆角输入框和按钮背景 
2.如何实现“手机号”、“密码”后面的竖线 
3.如何监听输入框的输入事件及删除按钮的动态显示隐藏

1.如何使用圆角输入框和按钮背景

安卓为开发者准备了shape这个xml标签,用于自定义一些形状。 
那么我就来定义一个白色的输入框背景。代码如下:

    <!-- 形状 -->
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle" >

    <solid android:color="#ffffff" />
    <!-- 边框 -->
    <stroke
        android:width="1dip"
        android:color="#ffffff" />
    <!-- 内填充颜色 -->
    <padding
        android:bottom="10dp"
        android:left="10dp"
        android:right="10dp"
        android:top="10dp" />
    <!-- 圆角 -->
    <corners android:radius="6dp" />

</shape>

将其设置成任何View的background就可以了

android:background="@drawable/shape_wihte_frame"

2.如何实现“手机号”、“密码”后面的竖线

这个其实很简单,只需书写一个竖线即可,宽度为1dp或者1px(或你认为更合适的数值)。

 <View
                android:id="@+id/view1"
                android:layout_width="1dip"
                android:layout_height="fill_parent"
                android:layout_centerVertical="true"
                android:layout_gravity="center_horizontal"
                android:layout_marginLeft="2dp"
                android:layout_marginRight="2dp"
                android:layout_toRightOf="@+id/textView1"
                android:background="#EEEFFF" />

3.如何监听输入框的输入事件及删除按钮的动态显示隐藏

思想很简单,就是监听EditText的输入事件,之后如果输入长度大于0就显示后面的删除按钮,如果=0就隐藏删除按键,点击删除按钮就清空输入框。在这里我写出了一个工具类方便大家调用。高内聚低耦合是我们共同的追求。

public class EditTextClearTools {
    public static void addclerListener(final EditText e1, final ImageView m1) {

        e1.addTextChangedListener(new TextWatcher() {

            @Override
            public void onTextChanged(CharSequence s, int start, int before,
                    int count) {
                // TODO Auto-generated method stub

            }

            @Override
            public void beforeTextChanged(CharSequence s, int start, int count,
                    int after) {
                // TODO Auto-generated method stub

            }

            @Override
            public void afterTextChanged(Editable s) {
                // TODO Auto-generated method stub
                // 监听如果输入串长度大于0那么就显示clear按钮。
                String s1 = s + "";
                if (s.length() > 0) {
                    m1.setVisibility(View.VISIBLE);
                } else {
                    m1.setVisibility(View.INVISIBLE);
                }

            }
        });

        m1.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                // 清空输入框
                e1.setText("");

            }
        });

    }

}

 

主程序代码

public class MainActivity extends Activity {
    EditText e1, e2;
    ImageView m1, m2;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.activity_user_login);
        init();
    }

    private void init() {
        // TODO Auto-generated method stub
        e1 = (EditText) findViewById(R.id.phonenumber);
        e2 = (EditText) findViewById(R.id.password);
        m1 = (ImageView) findViewById(R.id.del_phonenumber);
        m2 = (ImageView) findViewById(R.id.del_password);
        // 添加监听器
        EditTextClearTools.addclerListener(e1, m1);
        EditTextClearTools.addclerListener(e2, m2);

    }

}

代码连接http://download.csdn.net/detail/androidmsky/9274037

转载于http://blog.csdn.net/androidmsky/article/details/49870823

 




以上是关于android EditText密码框,怎么让它只显示密码点,不让它显示最后一位输入的字符?的主要内容,如果未能解决你的问题,请参考以下文章

Android 编辑框(EditText)属性学习

Android Word-Wrap EditText 文本

Android之仿微信支付密码输入框

android布局_EditText

android 怎么设置密码不可见

Android 系统搜索框 如何限制输入字数长度?