您的位置:首页 > 移动开发 > Android开发

Android 登陆对话框

2015-03-18 21:35 190 查看
public class LoginActivity extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

setContentView(R.layout.activity_login);

showWaiterAuthorizationDialog();
}

// 显示对话框
public void showWaiterAuthorizationDialog() {

// LayoutInflater是用来找layout文件夹下的xml布局文件,并且实例化
LayoutInflater factory = LayoutInflater.from(LoginActivity.this);
// 把activity_login中的控件定义在View中
final View textEntryView = factory.inflate(R.layout.activity_login,
null);

// 将LoginActivity中的控件显示在对话框中
new AlertDialog.Builder(LoginActivity.this)
// 对话框的标题
.setTitle("登陆")
// 设定显示的View
.setView(textEntryView)
// 对话框中的“登陆”按钮的点击事件
.setPositiveButton("登陆", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {

// 获取用户输入的“用户名”,“密码”
// 注意:textEntryView.findViewById很重要,因为上面factory.inflate(R.layout.activity_login,
// null)将页面布局赋值给了textEntryView了
final EditText etUserName = (EditText) textEntryView
.findViewById(R.id.etuserName);
final EditText etPassword = (EditText) textEntryView
.findViewById(R.id.etPWD);

// 将页面输入框中获得的“用户名”,“密码”转为字符串
String userName = etUserName.getText().toString()
.trim();
String password = etPassword.getText().toString()
.trim();

// 现在为止已经获得了字符型的用户名和密码了,接下来就是根据自己的需求来编写代码了
// 这里做一个简单的测试,假定输入的用户名和密码都是1则进入其他操作页面(OperationActivity)
if (userName.equals("1") && password.equals("1")) {
// 跳转到OperationActivity
Intent intent = new Intent();
intent.setClass(LoginActivity.this,
OperationActivity.class);
startActivity(intent);
// 关闭当前页面
LoginActivity.this.finish();

} else {
Toast.makeText(LoginActivity.this, "密码或用户名错误",
Toast.LENGTH_SHORT).show();

try {
// 注意此处是通过反射,修改源代码类中的字段mShowing为true,系统会认为对话框打开
// 从而调用dismiss()
Field field = dialog.getClass().getSuperclass()
.getDeclaredField("mShowing");
field.setAccessible(true);
field.set(dialog, false);
dialog.dismiss();

} catch (Exception e) {

}
}
}
})
// 对话框的“退出”单击事件
.setNegativeButton("退出", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
LoginActivity.this.finish();
}
})
// 设置dialog是否为模态,false表示模态,true表示非模态
.setCancelable(false)
// 对话框的创建、显示
.create().show();
}
}


来源 : http://blog.csdn.net/aboy123/article/details/8548930
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: