GVKun编程网logo

以编程方式将 EditText 的输入类型从 PASSWORD 更改为 NORMAL,反之亦然(编程将输入的yyyy.mm.dd格式)

23

如果您对以编程方式将EditText的输入类型从PASSWORD更改为NORMAL,反之亦然和编程将输入的yyyy.mm.dd格式感兴趣,那么这篇文章一定是您不可错过的。我们将详细讲解以编程方式将Ed

如果您对以编程方式将 EditText 的输入类型从 PASSWORD 更改为 NORMAL,反之亦然编程将输入的yyyy.mm.dd格式感兴趣,那么这篇文章一定是您不可错过的。我们将详细讲解以编程方式将 EditText 的输入类型从 PASSWORD 更改为 NORMAL,反之亦然的各种细节,并对编程将输入的yyyy.mm.dd格式进行深入的分析,此外还有关于android – EditText以编程方式添加了XML版本的差异、android – EditText:以编程方式设置字符数、android – TextInputLayout对于在EditText中以编程方式提供提示无效、Android – 以编程方式更改EditTextPreference对话框的正面按钮文本的实用技巧。

本文目录一览:

以编程方式将 EditText 的输入类型从 PASSWORD 更改为 NORMAL,反之亦然(编程将输入的yyyy.mm.dd格式)

以编程方式将 EditText 的输入类型从 PASSWORD 更改为 NORMAL,反之亦然(编程将输入的yyyy.mm.dd格式)

在我的应用程序中,我有一个EditText默认输入类型设置为android:inputType="textPassword"默认值。它具有CheckBox右侧的一个,即检查时,将其Edittext的输入类型更改为普通纯文本。代码是

password.setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);

我的问题是,当未选中 CheckBox 时,它应该再次将输入类型设置为 PASSWORD。我已经使用 -

password.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD);

但是,edittext 中的文本仍然可见。令人惊讶的是,当我更改方向时,它会自动将输入类型设置为 PASSWORD 并且里面的文本是项目符号(显示为密码)。

有什么办法可以做到这一点?

答案1

小编典典

EditText以编程方式添加一个额外的属性,你就完成了:

password.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);

对于数字密码(pin):

password.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_VARIATION_PASSWORD);

另外,请确保光标位于文本的末尾,EditText因为当您更改输入类型时,光标将自动设置为起点。所以我建议使用以下代码:

et_password.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);et_password.setSelection(et_password.getText().length());

使用数据绑定时,可以使用以下代码:

<data>        <import type="android.text.InputType"/>...<EditTextandroid:inputType=''@{someViewModel.isMasked ? (InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD) :InputType.TYPE_CLASS_TEXT }''

如果使用 Kotlin:

password.inputType = InputType.TYPE_CLASS_TEXT or InputType.TYPE_TEXT_VARIATION_PASSWORD

android – EditText以编程方式添加了XML版本的差异

android – EditText以编程方式添加了XML版本的差异

我有一个包含EditText和2个按钮的XML布局.如果我单击加号按钮,则以编程方式添加新的edittext.这有效,但edittext看起来不同.根据XML,XML中定义的edittext没有任何特殊属性,所以我认为它不是特定的布局设置.

我的问题是如何让我以编程方式添加EditText的外观相同?

包含数字的EditText是我以编程方式添加的edittext.空的是在XML中创建的.

screenshot http://www.tozz.nl/temp/screenshot.png

码:

        LinearLayout baseLayout = (LinearLayout) findViewById(R.id.baseLayout);

        LinearLayout linearLayout = new LinearLayout(getApplicationContext());
        linearLayout.setId(100 + numPlayers);
        linearLayout.setorientation(LinearLayout.HORIZONTAL);

        EditText editText = new EditText(getApplicationContext());
        editText.setText(editText.toString().substring(25, 30));

        ImageButton delButton = new ImageButton(getApplicationContext());
        delButton.setimageResource(R.drawable.ic_delete);

        linearLayout.addView(editText);
        linearLayout.addView(delButton);

        baseLayout.addView(linearLayout);

我的XML如下:

    <LinearLayout
        android:id="@+id/linearPlayer1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <EditText
            android:id="@+id/editPlayer1"
            android:layout_width="0dip"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_weight="1"
            android:gravity="center_vertical" />



        <ImageButton
            android:id="@+id/addplayer1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/ic_input_add" />

    </LinearLayout>

解决方法:

Luksprog回答了我的问题:

pass the Activity Context and not the Application Context when creating the new views.

android – EditText:以编程方式设置字符数

android – EditText:以编程方式设置字符数

我有一个EditText,我想限制可以在这个EditText中输入的字符数,并以编程方式进行此限制,该怎么做?例如,假设我想将其限制为仅允许10个字符.

解决方法:

您可以使用InputFilter以编程方式将EditView中的字符数限制为:

InputFilter[] Filterarray = new InputFilter[1];
Filterarray[0] = new InputFilter.LengthFilter(10);
your_edittext.setFilters(Filterarray);

要获得更多帮助,您可以查看本教程以限制EditView中的字符数:

http://www.tutorialforandroid.com/2009/02/maxlength-in-edittext-using-codes.html

android – TextInputLayout对于在EditText中以编程方式提供提示无效

android – TextInputLayout对于在EditText中以编程方式提供提示无效

我有一个EditText,它的父亲是TextInputLayout.
我试图以编程方式为EditText提供提示,(不在布局中)
在这种情况下,文本输入提示动画不起作用,它的工作方式就像简单的EditText.有人可以建议如何处理它.

下面是我的布局.

<android.support.design.widget.TextInputLayout
    android:id="@+id/text_input_layout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <EditText
        android:id="@+id/post_EditTextPostAnAd"/>

</android.support.design.widget.TextInputLayout>

解决方法:

您必须将提示设置为TextInputLayout
这是代码.

TextInputLayout textInputLayout = (TextInputLayout)findViewById(R.id.text_input_layout);
textInputLayout.setHint("Hello");

Android – 以编程方式更改EditTextPreference对话框的正面按钮文本

Android – 以编程方式更改EditTextPreference对话框的正面按钮文本

我试图在`EditTextPreference中更改Dialog的positiveButtonText.我试过以下但没有成功:

    // The reference to the preference in the view heirarchy
    mUrlPreference = (EditTextPreference) getPreferenceScreen().findPreference(pref);       
    // Add a textwatcher
    mUrlPreference.getEditText().addTextChangedListener(prefWatcher);

prefWatcher如下:

private TextWatcher prefWatcher = 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) {
        Log.i(TAG_LOG, "Updating the positive button text");
        mUrlPreference.setPositiveButtonText("Download");
    }
};

当我更改EditText中的文本时,将打印日志,但正面按钮文本不会更改.这里有什么我想念的吗?我最初的想法是,我必须刷新对话框的视图层次结构,但我没有在API中看到任何方法来执行此操作.关于我在这里缺少什么的想法?

解决方法:

根据setPositiveButtonText()的文档,更新的文本将显示在后续对话框中.所以要实际影响按钮,请改为:

@Override
public void afterTextChanged(Editable s) {
    mUrlPreference.setPositiveButtonText("Download");

    Button button = (Button) mUrlPreference.getDialog().findViewById(android.R.id.button1);
    button.setText("Download");
    button.invalidate(); // if necessary
}

今天关于以编程方式将 EditText 的输入类型从 PASSWORD 更改为 NORMAL,反之亦然编程将输入的yyyy.mm.dd格式的介绍到此结束,谢谢您的阅读,有关android – EditText以编程方式添加了XML版本的差异、android – EditText:以编程方式设置字符数、android – TextInputLayout对于在EditText中以编程方式提供提示无效、Android – 以编程方式更改EditTextPreference对话框的正面按钮文本等更多相关知识的信息可以在本站进行查询。

本文标签: