点击编辑按钮后如何使EditText可编辑

7

我在我的Android应用中有一个用户资料屏幕,其中展示了用户注册时提供的信息,并提供了编辑按钮以修改他们的信息。


你有什么问题吗?EditText默认是可编辑的。 - codeMagic
我被要求只有在EditText下方的按钮被点击时才能使其可编辑,否则它将无法获得焦点。 - Rax
4个回答

6
您可以在 XML 文件中禁用它。
android:editable="false" 
android:inputType="none" 

在编辑按钮的onClick()方法中以编程方式启用它。

EditText mEdit = (EditText) findViewById(R.id.yourid);
mEdit.setEnabled(true);

对不起,我已经更新了我的答案。所以在xml中将其设置为false,这样它就会启动时无法编辑,并且当你的按钮被按下时使用代码setEnabled来改变它。 - Chris

5
edT.setFocusable(false); //to disable it

 button.setOnClickListener(new OnClickListener() {
   public void onClick(View v) {
      edT.setFocusableInTouchMode(true); //to enable it
      }
  });

0

android:editable已被弃用。

在xml中只使用android:focusable =“false”

并且在按钮点击时 -

EditText editText = findViewById(R.id.yourid);
editText.setFocusableInTouchMode(true);

0
你可以使用这段代码:它处理编辑和完成两个事件。
public class MainActivity extends AppCompatActivity implements View.OnClickListener {

private EditText edtText;
private Button btnEdit;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    edtText = findViewById(R.id.edtTxt);
    btnEdit = findViewById(R.id.btnEdt);

    edtText.setEnabled(false);
    btnEdit.setText("Edit");

    btnEdit.setOnClickListener(this);
}


@Override
public void onClick(View v) {

    switch (v.getId()) {
        case R.id.btnEdt:  //Your edit button
            enableDisableEditText();
            break;
        default:
            break;
    }
}

//method for enable or disable edittext
private void enableDisableEditText() {
    if (edtText.isEnabled()) {
        edtText.setEnabled(false);
        btnEdit.setText("Edit");
    } else {
        edtText.setEnabled(true);
        btnEdit.setText("Done");
    }
}

}

愉快的编码..


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接