標籤:
MainActivity:
/**
* 點擊EditText表單後,清除預設字
* @author [email protected]
*
*/
public class MainActivity extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
EditText username = (EditText)findViewById(R.id.username);
EditText password = (EditText)findViewById(R.id.password);
Button login = (Button)findViewById(R.id.login);
/*EditText預設擷取焦點行為的取消?
解決之道:在EditText的父級控制項中,
設定: android:focusable="true"
android:focusableInTouchMode="true"
詳見xml布局檔案。*/
//username焦點監聽事件
username.setOnFocusChangeListener(new OnFocusChangeListener() {
public void onFocusChange(View v, boolean hasFocus) {
EditText et=(EditText)v;
if (!hasFocus) {// 失去焦點
et.setHint(et.getTag().toString());
} else {
String hint=et.getHint().toString();
et.setTag(hint);//儲存預設字
et.setHint(null);
}
}
});
//password焦點監聽事件
password.setOnFocusChangeListener(new OnFocusChangeListener() {
public void onFocusChange(View v, boolean hasFocus) {
EditText et=(EditText)v;
if (!hasFocus) {// 失去焦點
et.setHint(et.getTag().toString());
} else {
String hint=et.getHint().toString();
et.setTag(hint);//儲存預設字
et.setHint(null);
}
}
});
login.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Toast.makeText(MainActivity.this, "登入", Toast.LENGTH_LONG).show();
}
});
}
}
布局介面:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="8dp"
android:focusable="true"
android:focusableInTouchMode="true"
android:orientation="vertical" >
<EditText
android:id="@+id/username"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="請輸入您的使用者名稱"/>
<EditText
android:id="@+id/password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="請輸入您的密碼"/>
<Button
android:id="@+id/login"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="登入"/>
</LinearLayout>
Android 點擊EditText編輯框清除hint預設字