如何在Android中制作可点击和可编辑的文本字段?

时间:2014-11-15 05:53:34

标签: android textfield onclicklistener

我正在开发Android应用程序,我想让我的文本域可编辑和可点击。它在我的屏幕上有多个TextFields和EditTexts。我有"编辑" TextField我想让它可点击,点击后我想让其他字段可编辑并启用。如果不点击编辑文本字段,则不应启用它们。

我的代码段如下:

{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_user_profile);

    fName = (TextView) findViewById(R.id.fnametxt);
    lName = (TextView) findViewById(R.id.lastnameTxt);
    mailText = (TextView) findViewById(R.id.mailTxt);
    mobileText = (TextView) findViewById(R.id.mobileTxt);
    dobText = (TextView) findViewById(R.id.dobTxt);

    fName.setText(currentUserFirstName);
    lName.setText(currentUserLastName);
    dobText.setText("");
    mobileText.setText(currentUserContactNumber);
    mailText.setText(currentUserEmail);
}

2 个答案:

答案 0 :(得分:3)

您无法将TextView转换为EditText,但您可以使用setEnabled属性来编辑EditText

您可以使用editText.setEnabled(true);使EditText可编辑。

假设您有两个edittexts,如下所示。在第一个edittext中输入数据时,您需要编辑edittext2,然后您可以执行此操作:

EditText edittext1, edittext2;
//findViewByIds for both views

editText1.addTextChangedListener(new TextWatcher() {

    public void onTextChanged(CharSequence s, int start,
        int before, int count) {
        if(s.length() != 0)
            editText2.setEnabled(true);
        else
            editText2.setEnabled(false);
    }
});

希望这给出了如何使用它的线索。

修改

不要混淆TextField,Button,EditText。

在Android中,简单的只读字段是TextView。可编辑的文本框称为EditText,Button是普通的Button。

根据您所说的,您希望在单击按钮时编辑EditTexts。

使用此:

EditText edittext1, edittext2;
Button button;
//findViewByIds for all views.
buton.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {
        editText1.setEnabled(true);
        editText2.setEnabled(true);
    }
});

答案 1 :(得分:1)

在我看来,如果你想编辑你的文本域,那么最好使用EditText。原因如下

The TextView's editable param does make it editable (with some restrictions).

如果您设置

android:editable="true"

您可以通过D-pad访问TextView,也可以添加

android:focusableInTouchMode="true" 

能够专注于触摸。

问题是您无法修改现有文本,也无法移动光标。您编写的文本只会在现有文本之前添加。