我有一个编辑文本。我在xml布局中设置了focusable = false。但是当我点击一个按钮时,我希望它再次获得焦点,我现在可以编辑文本。但是,即使设置了focusable = true,我也不能这样做。
<EditText
android:id="@+id/et_display_name"
android:layout_width="0dp"
android:layout_height="44dp"
android:layout_marginTop="40dp"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:background="@drawable/profile_shape"
android:text="Display Name"
android:textColor="@color/grey"
android:inputType="textPersonName"
android:cursorVisible="false"
android:focusable="false"
android:maxLines="1"
android:maxLength="30"
android:textSize="20sp"
android:gravity="fill"
android:paddingStart="16dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/iv_profilePic" />
即使在这样做之后,我也无法编辑文本,因为光标不可见,键盘也不弹出。
etDisplayName.focusable = View.FOCUSABLE
etDisplayName.requestFocus()
etDisplayName.isCursorVisible = true
要使EditText再次可编辑,您需要将focusable属性设置为true,并将cursorVisible属性设置为true。您可以在您的活动或片段中以编程方式执行此操作。
下面是一个示例代码片段:// Get reference to the EditText
EditText etDisplayName = findViewById(R.id.et_display_name);
// Set focusable and cursorVisible properties to true
etDisplayName.setFocusable(true);
etDisplayName.setCursorVisible(true);
// Request focus on the EditText
etDisplayName.requestFocus();
使用这段代码,您应该能够点击按钮,EditText将再次成为可编辑的,光标可见,键盘弹出。