Android wiki:08.自定义对话框
2015-07-01 19:28
295 查看
1:根据情况,自定义将要显示的对话框布局文件。
//------------------例子----------------------
如果定义一个带有输入框和按键的对话框
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="300dp"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:orientation="vertical" >
<TextView
android:layout_width="match_parent"
android:layout_height="40dp"
android:background="#00CC00"
android:gravity="center"
android:text="请输入密码"
android:textColor="#ffffff"
android:textSize="20sp" />
<EditText
android:id="@+id/et_password"
android:layout_width="300dp"
android:layout_height="40dp"
android:hint="请输入密码" />
<LinearLayout
android:layout_width="300dp"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:orientation="horizontal" >
<Button
android:id="@+id/bt_break"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="取消" />
<Button
android:id="@+id/bt_ok"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="确认" />
</LinearLayout>
</LinearLayout>
2:显示对话框
AlertDialog.Builder builder = new Builder(this);
View view = View.inflate(this, R.layout.dialog_set_password, null);//找到定义的布局文件,加载生成view对象。
builder.setView(view);
alertDialog = builder.show();
//-------------------例子----------------------
private EditText et_password;
private Button bt_ok;
private Button bt_break;
private AlertDialog alertDialog;
private void showEnterPasswordDialog() {
Log.i(TAG, "showEnterPasswordDialog");
AlertDialog.Builder builder = new Builder(this);
View view = View.inflate(this, R.layout.dialog_enter_password, null);
et_password = (EditText) view.findViewById(R.id.et_password);
bt_ok = (Button) view.findViewById(R.id.bt_ok);
bt_break = (Button) view.findViewById(R.id.bt_break);
bt_ok.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
String password = et_password.getText().toString().trim();
if (TextUtils.isEmpty(password)) {
Toast.makeText(MainActivity.this, "密码为空", 0).show();
return;
}
String savePassword = sp.getString("password", null);
if (password.equals(savePassword)) {
alertDialog.dismiss();//
Log.i(TAG, "密码正确,进入主介面");
}else{
Toast.makeText(MainActivity.this, "密码错误", 0).show();
Log.i(TAG, "密码已错误");
}
}
});
bt_break.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
alertDialog.dismiss();// 关闭对话框
}
});
builder.setView(view);
alertDialog = builder.show();
}
//------------------例子----------------------
如果定义一个带有输入框和按键的对话框
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="300dp"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:orientation="vertical" >
<TextView
android:layout_width="match_parent"
android:layout_height="40dp"
android:background="#00CC00"
android:gravity="center"
android:text="请输入密码"
android:textColor="#ffffff"
android:textSize="20sp" />
<EditText
android:id="@+id/et_password"
android:layout_width="300dp"
android:layout_height="40dp"
android:hint="请输入密码" />
<LinearLayout
android:layout_width="300dp"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:orientation="horizontal" >
<Button
android:id="@+id/bt_break"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="取消" />
<Button
android:id="@+id/bt_ok"
android:layout_width="0dip"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="确认" />
</LinearLayout>
</LinearLayout>
2:显示对话框
AlertDialog.Builder builder = new Builder(this);
View view = View.inflate(this, R.layout.dialog_set_password, null);//找到定义的布局文件,加载生成view对象。
builder.setView(view);
alertDialog = builder.show();
//-------------------例子----------------------
private EditText et_password;
private Button bt_ok;
private Button bt_break;
private AlertDialog alertDialog;
private void showEnterPasswordDialog() {
Log.i(TAG, "showEnterPasswordDialog");
AlertDialog.Builder builder = new Builder(this);
View view = View.inflate(this, R.layout.dialog_enter_password, null);
et_password = (EditText) view.findViewById(R.id.et_password);
bt_ok = (Button) view.findViewById(R.id.bt_ok);
bt_break = (Button) view.findViewById(R.id.bt_break);
bt_ok.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
String password = et_password.getText().toString().trim();
if (TextUtils.isEmpty(password)) {
Toast.makeText(MainActivity.this, "密码为空", 0).show();
return;
}
String savePassword = sp.getString("password", null);
if (password.equals(savePassword)) {
alertDialog.dismiss();//
Log.i(TAG, "密码正确,进入主介面");
}else{
Toast.makeText(MainActivity.this, "密码错误", 0).show();
Log.i(TAG, "密码已错误");
}
}
});
bt_break.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
alertDialog.dismiss();// 关闭对话框
}
});
builder.setView(view);
alertDialog = builder.show();
}
相关文章推荐
- SEAndroid上下文
- Android wiki:07.activity四中加载模式
- Android wiki:06.自定义组合控件属性的步骤
- Android wiki:05.跑马灯文字流动效果(自定义带焦点的view对象)
- Android内存泄漏分析及调试
- Android wiki:03.android json解折
- Android wiki:02.给activity添加动画效果
- Android wiki:01.PackageManager获得清单文件中的所有信息
- Android等图标制作站点
- Android 系统资源(字体,声音,视频)的简介
- android 多线程 图片:加载
- Android 中 EventBus 的使用
- SEAndroid初步了解
- ubuntu下几种Android测试工具
- 老罗Android开发视频教程_基于JavaSE开发(适合Android初学者菜鸟级别的人)
- Android统一风格 —— 主题
- Android的界面设计规范
- 动态加载apk的坑
- Android技术之ListView分割线显示和隐藏
- android EditText inputType说明