将Edittext转换为只读,并在按下按钮上使其可编辑

时间:2017-10-21 11:29:27

标签: java android

我得到了这个。在点击按钮之前,我的EditText只能查看:

image

按下按钮后,它应转换为可编辑字段:

image

我希望EditText字段行消失并变为只读,单击按钮使其可编辑。但这只是淡化了线条,而且它内部的文字也失去了它的视觉外观。

这是我的代码:

et1.setEnabled(false);
et1.setFocusable(true);
btn.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        et1.setEnabled(true);
        et1.requestFocus();
    }
});

1 个答案:

答案 0 :(得分:0)

你的XML应该是这样的,

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical">

<EditText
    android:id="@+id/et1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:ems="10"
    android:inputType="textPersonName"
    android:text="Name" />

<TextView
    android:id="@+id/tv1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="TextView" />

<Button
    android:id="@+id/btn1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Button" />


  </LinearLayout>


现在,将以下代码添加到您的活动类中。

//init the views.
et1.setVisiblity(GONE);
tv1.setVisiblity(VISIBLE);



 //if the textView is shown, the btn click will hide it and show editText 
 //instead, and same happens for editText
  btn1.setOnClickListener(new View.OnClickListener(){
  public void onClick(){

  if(et1.getVisiblity() != VISIBLE) {
        et1.setVisbility(VISIBLE);
        tv1.setVisibility(GONE);
   } else {
        et1.setVisbility(GONE);
        tv1.setVisibility(VISIBLE);
  }

  } });

P.S:这不是可执行代码,但希望它能帮到你。