Kai*_*las 16 android progressdialog android-progressbar
我ProgressDialog在线程中使用了a .在onButtonClick线程启动时,但当我触摸屏幕上的任何地方时,它ProgressDialog都会关闭.
我怎么能阻止这个?
private void ButtonClick(View view) {
btn1 = (Button) view.findViewById(R.id.btn1);
btn1.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
GetStudentData();
}
});
}
private synchronized void GetStudentData() {
try {
// Thread to display loader
new Thread() {
@Override
public void run() {
Looper.prepare();
dialog = Msg.ShowProgressDialogBox(
getActivity(),
dialog,
"Please wait while we fetch the student data...");
Looper.loop();
}
}.start();
new Thread() {
@Override
public void run() {
String studentData="Kailas";
}
}
} catch(Exception ex {
}
}
Run Code Online (Sandbox Code Playgroud)
更新
当我触摸屏幕时,ProgressDialog消失但获取所有数据.
JJ8*_*J86 51
将其添加到对话框中:
yourDialog.setCanceledOnTouchOutside(false);
Run Code Online (Sandbox Code Playgroud)
通过这种方式,您可以触摸屏幕,对话框将不会被取消.
编辑
如果您正在使用DialogFragment,则必须在调用show(FragmentManager mng,String tag)之前使用以下代码段:
更多信息在这里.
dialogFragment.setCancelable(false);
Run Code Online (Sandbox Code Playgroud)
编辑2
请注意ProgressDialog,因为Android Oreo(v8.0)现在已弃用.
private synchronized void GetStudentData() {
try {
// Thread to display loader
new Thread() {
@Override
public void run() {
Looper.prepare();
dialog = Msg.ShowProgressDialogBox(getActivity(),
dialog,
"Please wait while we fetch the student data...");
dialog.setCanceledOnTouchOutside(getRetainInstance());
Looper.loop();
}
}.start();
new Thread() {
@Override
public void run() {
String studentData="Kailas";
}
}
}
Run Code Online (Sandbox Code Playgroud)
我使用过这行dialog.setCanceledOnTouchOutside(getRetainInstance()); 它在我的Android设备操作系统(4.0.1)中运行良好,也在OS(2.6.3)上测试过
| 归档时间: |
|
| 查看次数: |
26142 次 |
| 最近记录: |