我正在学习在android studio上开发android,我遇到了一个问题。
我有多个用于用户信息的EditText控件:名字,姓氏,地址,我希望它们在聚焦和失焦时表现相同。
例如,我的emailInput EditText控件有"电子邮件地址"作为其文本属性。当用户点击"电子邮件地址"消失,如果用户没有添加任何输入并离开控件"电子邮件地址"。这就是这个方法的作用:
private string emailAddress = "Email Address";
public void onFocusChange(View view, boolean focus)
{
(EditText) email = (EditText) findViewById(R.id.emailInput);
if(!focus && (email.getText()).equals(""))
{
email.setText(emailAddress);
}
else if(focus && (email.getText()).equals(emailAddress))
{
email.setText("");
}
}
我有20个控件,我不想复制和粘贴相同的代码并更改变量。
我有两个问题:我可以获取调用onFocusChange方法的控件的id,这样第一行就变成了 - >
(EditText) ctrl = (EditText) findViewById(R.id.(this.getId());
我可以添加一个新属性" Initial Text"到EditText控件,所以我可以得到这样的东西 - >
if(!focus && (ctrl.getText()).equals(""))
{
ctrl.setText(ctrl.getInitialText());
}
else if(focus && (ctrl.getText()).equals(ctrl.getInitialText()))
{
ctrl.setText("");
}
编辑:这有点像创建我自己的继承自EditText类的控件。我只是添加一个对象变量(初始文本)和一个方法(getInitialText)。我可以像这样创建自己的控件,并且在android studio中仍然具有拖放功能吗?
谢谢! :d
答案 0 :(得分:2)
您描述的行为正是任何EditText上的android:hint
属性所做的。
http://developer.android.com/reference/android/widget/TextView.html#attr_android:hint