我正在开发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);
}
答案 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"
能够专注于触摸。
问题是您无法修改现有文本,也无法移动光标。您编写的文本只会在现有文本之前添加。