我在做一个alertdialog时出错,关于自定义view,
下面是正确的调用代码,onCreateDialog方法中:
[align=left] LayoutInflater inflater2 =LayoutInflater.from(this);
//dialog_set_merge是一个RadioGroup ,含有两个选项
View merge_view = inflater2.inflate(R.layout.dialog_set_merge,null);
RadioGroup radioGroup_merge =[b] (RadioGroup) merge_view[/b].findViewById(R.id.radioGroup_merge);
final RadioButton inner_to_sd = (RadioButton) merge_view.findViewById(R.id.radion_merge1);
check_merge = true;
inner_to_sd.setClickable(true);
inner_to_sd.setChecked(true);
radioGroup_merge.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
if (checkedId == inner_to_sd.getId())
check_merge = true;
else
check_merge = false;
}
});
AlertDialog.Builder dialog_merge = new AlertDialog.Builder(YyBackUpSetting.this);
dialog_merge.setOnKeyListener(new DialogInterface.OnKeyListener() {
@Override
public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {
if (event.getKeyCode() == KeyEvent.KEYCODE_SEARCH) {
return true;
}
if (event.getKeyCode() == KeyEvent.KEYCODE_BACK) {
}
return false;
}
})
.setTitle(R.string.set_merge)
.setView(merge_view)
.setPositiveButton(R.string.dialog_ok,new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
showWaitingDialog();
new Thread(new Runnable() {
@Override
public void run() {
Looper.prepare();
Process.setThreadPriority(Process.THREAD_PRIORITY_BACKGROUND);
if (Environment.getExternalStorageDirectorySd() != null) {
if (Environment.getExternalStorageStateSd() .equals(Environment.MEDIA_MOUNTED)) {
fileHelper = new FileHelper(
YyBackUpSetting.this);
String path = Environment .getExternalStorageDirectory() .toString() + "/yybackup/";
File srcFile = new File(path);
String paString = Environment .getExternalStorageDirectorySd() .toString() + "/yybackup/";
File destFile = new File(paString);
if (check_merge) {
// 从手机到外置存储卡
try {
fileHelper.copyDirFilesTo(srcFile,
destFile);
} catch (IOException e) {
}
fileHelper.delDir(srcFile);
} else {
// 外置存储卡到手机
try {
fileHelper.copyDirFilesTo(destFile,
srcFile);
} catch (IOException e) {
// TODO
// Auto-generated
// catch block
e.printStackTrace();
}
fileHelper.delDir(destFile);
}
cancelDialog();
YyBackUpGF.showToast(YyBackUpSetting.this,
R.string.set_merge_sucess);
} else {
removeDialog(DIALOG_SET_MERGE);
cancelDialog();
YyBackUpGF.showToast(YyBackUpSetting.this,
R.string.set_merge_not_legal);
}
} else {
cancelDialog();
YyBackUpGF.showToast(YyBackUpSetting.this,
R.string.set_merge_not_find_sd);
}
Looper.loop();
}
}).start();
}
})
.setNegativeButton(R.string.dialog_cancel,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
removeDialog(DIALOG_SET_MERGE);
}
});
return dialog_merge.create();[/align]
分享到:
相关推荐
本资源“安卓Android源码——android 自定义对话框.rar”显然包含了关于如何在Android平台上创建和定制对话框的源代码示例。通过这个压缩包,我们可以学习到如何摆脱系统默认样式,设计出更符合应用风格的对话框。 ...
如果需要更深入的自定义,可以创建一个自定义的主题样式,将它应用到`AlertDialog.Builder`。这可以通过在`res/values/styles.xml`中定义一个新的主题,如`@style/CustomDialogTheme`,然后在创建`Builder`时使用:...
如果系统提供的默认样式不符合需求,可以通过`setView(View view)`方法加载自定义的布局。这个视图可以包含任意的UI元素,如输入框、复选框等。 5. **构建和显示AlertDialog**: 使用`build()`方法创建实际的`...
例如,通过`setView(View view)`方法可以插入一个包含自定义布局的视图到对话框中。同时,还可以使用`setCustomTitle(View view)`为对话框添加自定义标题栏。 对于更复杂的对话框,如进度条对话框,可以使用`...
4. 如果需要自定义视图,可以使用`setView(View view)`方法,加载XML布局文件或者创建自定义视图。 5. 最后,通过调用`create()`或`show()`方法将对话框展示出来。 此外,开发者可能会在源码中看到对样式和主题的...
Dialog是基于AlertDialog类的,通常由一个对话框主题(style)和自定义布局(content view)组成。在XML资源文件中,我们可以定义一个无边框的主题样式。例如: ```xml <item name="android:windowFrame">@null ...
在Android中,我们可以使用自定义布局和AlertDialog类来达到类似的效果。 1. 自定义布局: 创建一个新的XML布局文件,定义对话框的结构,包括标题、内容和按钮。可以设置背景颜色为半透明,并调整边框样式以模仿...
builder.setView(view) .setCancelable(true) .create() .getWindow() .setBackgroundDrawableResource(android.R.color.transparent); return builder.create(); } ``` 在这里,`android.R.color....
builder.setView(view) .setCancelable(true) // 可取消对话框 .setNegativeButton("关闭", null); // 添加关闭按钮,点击后对话框消失 return builder.create(); } } ``` 3. **显示对话框**:在需要展示...
builder.setView(dialogView) .setCancelable(false) .setPositiveButton("确定", (dialog, which) -> { // 处理点击事件 }); return builder.create(); } ``` 3. **展示对话框** - 在需要展示对话框的地方...
在这个方法中,我们可以通过`AlertDialog.Builder`创建`Dialog`,并自定义其布局和透明度。透明度可以通过修改`Window`的背景属性来实现: ```java @Override public Dialog onCreateDialog(Bundle ...
builder.setView(view); // 设置其他属性 builder.setTitle("标题") .setCancelable(true) .setNegativeButton("取消", null) ..setPositiveButton("确定", new DialogInterface.OnClickListener() { @...
.setView(view) .setTitle("自定义对话框") .create(); } } ``` 最后,使用`dialogFragment.show(getSupportFragmentManager(), "tag")`来显示自定义DialogFragment。 总结,Android的对话框机制为开发者提供了...
builder.setView(view); // 获取并设置关闭按钮 Button closeButton = view.findViewById(R.id.btnClose); closeButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick...
### Android UI篇——Dialog(对话框) 在Android应用开发中,对话框(Dialog)作为用户交互的重要组成部分之一,被广泛应用于各种场景下,比如提示信息、请求确认操作、登录界面等。本文将深入探讨Android中Dialog的...
首先,我们从最基础的开始——定义一个Dialog。在Android中,我们可以使用`AlertDialog.Builder`类来创建一个标准的对话框。以下是一个基本示例: ```java // 创建Builder对象 AlertDialog.Builder builder = new ...
这是最基础的Dialog形式,通常包含一个简短的文本信息和两个操作按钮——“确定”和“取消”。开发者可以使用`AlertDialog.Builder`类来创建这种对话框。首先实例化Builder,然后设置对话框的标题、消息和按钮监听...
Dialog的创建可以通过`AlertDialog.Builder`类进行,然后使用`setView()`方法添加自定义布局。在这个特定的案例中,我们使用`addView()`方法将ListView添加到Dialog中。 ListView是Android中的一个关键组件,用于...
在实际项目中,为了提高代码复用性和可维护性,可以将这个功能封装成一个自定义的View或者Fragment。通过接口或者回调函数,将选择的结果传递回父Activity或Fragment。 总结来说,这个"android 省市区三级联动选择...