如何创建可点击的Edittext?

时间:2019-01-18 08:47:30

标签: java android android-edittext onclicklistener

我知道那里有很多类似的问题,但是没有一个对我有用。我想制作一个像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"/>

2 个答案:

答案 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");
    }
});