Aam*_*hah 74 android android-layout android-edittext
是否可以使EditText可点击但不可编辑.
我不希望它是可编辑的(键盘也不应该出现,我们也不能改变提示)
实际上我想将编辑文本简单地用作带有提示的图像(不能更改).我知道实际的方法是使用一个ImageView和一个TextView,但我希望它尝试,EditText因为我将只使用一个视图而不是2.此外,每个东西都是动态的,所以没有XML.
对于上述要求,XML中的解决方案是,android:editable="false"但我想在Java中使用它.
但,
如果我使用: -
et.setEnabled(false);
Run Code Online (Sandbox Code Playgroud)
要么
et.setKeyListener(null);
Run Code Online (Sandbox Code Playgroud)
它使得EditText不可编辑,但同时也使它不可点击.
Aam*_*hah 145
这里的诀窍是: -
et.setFocusable(false);
et.setClickable(true);
Run Code Online (Sandbox Code Playgroud)
小智 18
你可以EditText使用java代码设置为fallowing: -
edittext.setFocusable(false);
edittext.setClickable(true);
Run Code Online (Sandbox Code Playgroud)
或者在XML文件中使用以下代码EditText.
android:editable="false"
android:inputType="none"
Run Code Online (Sandbox Code Playgroud)
由于editable已被弃用。您可以在设计xml时不使用它android:inputType,也可以在编码中用作InputType.TYPE_NULL。
设计XML
<android.support.v7.widget.AppCompatEditText
android:id="@+id/edt"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:clickable="true"
android:focusable="false"
android:inputType="none"
android:text="EditText"/>
Run Code Online (Sandbox Code Playgroud)
编码
edt.setClickable(true);
edt.setFocusable(false);
edt.setInputType(InputType.TYPE_NULL);
Run Code Online (Sandbox Code Playgroud)
以下是的点击事件 edittext
edt.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(YourActivity.this,"edt click", Toast.LENGTH_LONG).show();
}
});
Run Code Online (Sandbox Code Playgroud)
你可以用这个..
android:focusableInTouchMode="false"
Run Code Online (Sandbox Code Playgroud)
使edittext在xml中不可编辑.对于可点击的事件,您可以使用setOnTouchListener()事件来执行相同的操作.
editText.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
//do your stuff here..
return false;
}
});
Run Code Online (Sandbox Code Playgroud)
android:editable 已弃用,但您可以执行 stg 如下所示:
android:editable="false"
android:focusable="false"
android:focusableInTouchMode="false"
Run Code Online (Sandbox Code Playgroud)
我将上面的 cade 用于我使用选择器设置数据的编辑文本。您可以使用输入布局。
小智 7
Edittext 启用和禁用这样的编辑
EditText edit = (EditText) findviewby(R.id.edittext);
Run Code Online (Sandbox Code Playgroud)
通过java代码
edit.setEnabled(false); //non editable
edit.setEnabled(true); //editable
Run Code Online (Sandbox Code Playgroud)
通过xml
<EditText
android:id="@+id/otp_mpin"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:editable="false"
android:focusable="false"/>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
68113 次 |
| 最近记录: |