如何使编辑文本不可编辑,但在JAVA中可点击
是否有可能使EditText可点击,但不可编辑。 
我不希望它是可编辑的(键盘也不应该改变,也不应该改变提示)
 其实我想使用编辑文本只是一个提示(不能改变)的图像。 我知道实际的方法是使用一个ImageView和一个TextView ,但我希望它用EditText来尝试,因为那么我将只使用一个视图,而不是2.也是每个东西都是dynamic的,所以没有XML。 
 对于上述要求,XML中的解决scheme是android:editable="false"但我想在Java中使用它。 
但,
如果我使用: –
 et.setEnabled(false); 
要么
  et.setKeyListener(null); 
 它使EditText不可编辑,但在同一时间,它也使得它不可点击。 
这里的诀窍是:
 et.setFocusable(false); et.setClickable(true); 
 您可以通过使用java代码设置EditText作为休耕: – 
 edittext.setFocusable(false); edittext.setClickable(true); 
 或者在EditText XML文件中使用下面的代码。 
 android:editable="false" android:inputType="none" 
你可以用这个..
 android:focusableInTouchMode="false" 
使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; } }); 
  android:editable被弃用,但你可以像下面这样做: 
 android:editable="false" android:focusable="false" android:focusableInTouchMode="false" 
我用上面的cade编辑文本,我使用select器来设置数据。你可以使用这个input布局。
对于我来说,没有任何一个答案能够产生完整的解决scheme。
展示我的修复https://www.youtube.com/watch?v=oUA4Cuxfdqc
指导(noob友好) ,请注意在代码中的几个意见。
 为名为EditTextDispatched.java的自定义EditText创build一个Java类 
 import android.content.Context; import android.util.AttributeSet; import android.view.MotionEvent; import android.widget.RelativeLayout; /** * @author Martin Pfeffer * @see <a href="https://celox.io">https://celox.io</a> */ public class EditTextDispatched extends android.support.v7.widget.AppCompatEditText { private static final String TAG = "DispatchingEditText"; private boolean editable = true; public EditTextDispatched(Context context) { super(context); } public EditTextDispatched(Context context, AttributeSet attrs) { super(context, attrs); } public EditTextDispatched(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } // get the current state public boolean isEditable() { return editable; } // set your desired behaviour public void setEditable(boolean editable) { this.editable = editable; } @Override public boolean dispatchTouchEvent(MotionEvent motionEvent) { if (editable) { // default behaviour of an EditText super.dispatchTouchEvent(motionEvent); return true; } // achieve the click-behaviour of a TextView (it's cuztom) ((RelativeLayout) getParent()).onTouchEvent(motionEvent); return true; } } 
 在你的xml中引用EditTextDispatched (你将不得不改变pgk-name): 
  <io.celox.brutus.EditTextDispatched android:id="@+id/row_field_value" style="@style/row_field_text_display" android:layout_alignParentBottom="true" android:text="@string/sample_field_value" /> 
调用:
 private void changeEditTextBehaviour(EditTextDispatched value, boolean editable) { value.setEditable(editable); value.setEnabled(editable); } 
 edittext enable and disable for the edit like this EditText edit = (EditText) findviewby(R.id.edittext); through java edit.setEnabled(false); //non editable edit.setEnabled(true); //editable through xml <EditText android:id="@+id/otp_mpin" android:layout_width="fill_parent" android:layout_height="wrap_content" android:editable="false" android:focusable="false"/> 
 您也可以在EditText执行android:inputMethod="@null" ,它不会显示光标或键盘,然后您可以轻松掌握点击设置监听器。 
- 警告显示当我使用散列地图在Android(使用新的SparseArray <String>)
- 为新的Android ActionBar支持找不到Theme.AppCompat.Light
- 错误:compileSdkVersion android-21需要使用JDK 7编译
- 何时使用handler.post()和何时新的线程()
- 如何在Android中显示Toast?
- Android – 使用Alpha淡出animation使图像闪烁
- 嵌套的Recycler视图高度不包裹其内容
- Android的listview行删除animation
- 如何将Base64string转换为BitMap图像以在ImageView中显示它?