Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何更改EditText上的图标?_Android_Android Layout_Android Edittext_Android Inputtype - Fatal编程技术网

Android 如何更改EditText上的图标?

Android 如何更改EditText上的图标?,android,android-layout,android-edittext,android-inputtype,Android,Android Layout,Android Edittext,Android Inputtype,我制作EditText以接收用户的密码 所以我把输入类型改为密码 <EditText android:id="@+id/edittext_Password" android:layout_width="wrap_content" android:layout_height="wrap_content" android:backgroundTint="@color/

我制作EditText以接收用户的密码

所以我把输入类型改为密码

<EditText
                android:id="@+id/edittext_Password"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:backgroundTint="@color/colorPrimary"
                android:inputType="textPassword"
                android:layout_weight="1"
                />

当我在EditText中输入单词时,它会显示一个黑点。
我想把圆点改成可绘制的资源


您可以按照此代码编写需求代码

答案来自,它涵盖了当用户:

  • 进入登录屏幕,键盘将自动打开

  • 尝试在其中输入值,然后文本框背景更改为具有星形背景的文本框

  • 尝试使用键盘上的后退键取消/删除输入值,然后文本框背景将更改为无星形背景的文本框

首先,您必须创建两个
可绘制图形

然后,根据这种方法,您必须在
EditText
上实现
addTextChangedListener
方法。然后,作为参数,创建
TextWatcher
类的新实例,并实现其方法:

etxtPin1.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) {
          if(etxtPin1.getText().toString().trim().length()==1){

          etxtPin1.clearFocus();
          etxtPin2.requestFocus();
          etxtPin1.setBackgroundResource(R.drawable.pin_txt_bg_star);

          }
       }
    });
然后,您必须实现
setOnKeyListener
及其方法
onKey

this.etxtPin1.setOnKeyListener(new View.OnKeyListener() {
      public boolean onKey(View paramView, int paramInt, KeyEvent paramKeyEvent) {
           if ((paramKeyEvent.getAction() == KeyEvent.ACTION_DOWN)&&(paramInt == 67) && (LoginActivity.this.etxtPin2.getText().length() == 0)) {
               etxtPin1.requestFocus();
               etxtPin1.setBackgroundResource(R.drawable.pin_txt_bg);
               etxtPin1.setText("");
           }

           return false;
       }
    });


另一种方法:创建您自己的扩展类

参考:


如果要更改编辑文本中点的颜色,则可以更改文本颜色,这也会更改点的颜色

您可以使用此代码执行相同的操作:

android:textColor="#FF0000" or setTextColor(int)

可能的重复:我认为您不能设置drawable而不是char。您能发布所需的UI吗?@Khemraj就像一个圆圈一样that@ManishGupta是的,我看到了,但它返回char。我想要可以拉的,谢谢,我试试看。但在另一种方法中,它是否返回char?不可提取资源。谢谢,但这是我想要的答案
android:textColor="#FF0000" or setTextColor(int)