我知道那里有很多类似的问题,但是没有一个对我有用。我想制作一个像EditText
的{{1}}。我希望它不可编辑(并且不应该弹出键盘)。但是,当我设置Button
时,onClickListener()
对我的EditText
事件没有反应。我应该如何正确执行此操作?
在我的xml中,我禁用了onClick()
,并将focusableInTouchMode
设置为true。我生成的clickable
是不可编辑的,但是没有响应我的EditText
。
我的onClickListener()
的xml:
EditText
我的代码:
<EditText
android:id="@+id/taskviewer_date"
android:focusableInTouchMode="false"
android:clickable="true"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textStyle="normal"
android:textColorHint="@color/colorShadow"
android:inputType="none"
android:hint="No Due Date"/>
答案 0 :(得分:2)
使用onTouch事件或将可单击的FrameLayout放在EditText上以捕获单击事件。当您希望编辑文本可编辑时,使FrameLayout的可见性消失
答案 1 :(得分:1)
如果将setOnClickListener
设置为true,则可以使用EditText的setTextIsSelectable
。
在XML中:
<android.support.design.widget.TextInputLayout
android:id="@+id/textInpuLayout"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:hint="@string/hint_edit_text"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<android.support.design.widget.TextInputEditText
android:id="@+id/textInpuEditText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:enabled="false"
android:inputType="date"/>
</android.support.design.widget.TextInputLayout>
在适当的片段或活动中:
mTextInpuEditText.setEnabled(true);
mTextInpuEditText.setTextIsSelectable(true);
mTextInpuEditText.setFocusable(false);
mTextInpuEditText.setFocusableInTouchMode(false);
mTextInpuEditText.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Log.d(TAG, "Edit Text is clicked");
}
});