Вы можете сделать это следующим образом
private EditText nameEdit;
private EditText emailEdit;
private String nameDefaultValue = "Your Name";
private String emailDefaultValue = "abc@xyz.com";
и внутри метода onCreate
nameEdit = (EditText) findViewById(R.id.name);
nameEdit.setText(nameDefaultValue);
nameEdit.setOnTouchListener( new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (nameEdit.getText().toString().equals(nameDefaultValue)){
nameEdit.setText("");
}
return false;
}
});
nameEdit.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if(!hasFocus && TextUtils.isEmpty(nameEdit.getText().toString())){
nameEdit.setText(nameDefaultValue);
} else if (hasFocus && nameEdit.getText().toString().equals(nameDefaultValue)){
nameEdit.setText("");
}
}
});
emailEdit = (EditText)findViewById(R.id.email);
emailEdit.setText(emailDefaultValue);
emailEdit.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if(!hasFocus && TextUtils.isEmpty(emailEdit.getText().toString())){
emailEdit.setText(emailDefaultValue);
} else if (hasFocus && emailEdit.getText().toString().equals(emailDefaultValue)){
emailEdit.setText("");
}
}
});
if ( dlm= Этот подход не использует ни внешних утилит как grep
, ни циклов.
то, Что происходит здесь:
- мы используем подстановочную подстроку matcher для нахождения нашего объекта в массиве, который связывается в строку;
- мы отключаем возможные ложные положительные стороны путем включения нашего поискового объекта между парой разделителей;
- мы используем непечатаемый символ в качестве разделителя, чтобы быть на безопасной стороне;
- мы достигаем нашего разделителя, используемого для конкатенации массива также временной заменой
IFS
значение переменной; - мы делаем этот
IFS
замена значения временный путем оценки нашего условного выражения в подоболочке (в паре круглых скобок)
\x1F' ; IFS="$dlm" ; [[ "$dlm${array[*]}$dlm" == *"$dlm${item}$dlm"* ]] ) ; then
echo "array contains '$item'"
else
echo "array does not contain '$item'"
fi
Этот подход не использует ни внешних утилит как grep
, ни циклов.
то, Что происходит здесь:
IFS
значение переменной; IFS
замена значения временный путем оценки нашего условного выражения в подоболочке (в паре круглых скобок)