我遇到了一个问题,我的进度对话框没有显示或执行任何操作。我正在制作一个转换价值的货币转换器。这是我的代码:
if (text1.equals("US Dollar - USD") && text2.equals("Euro - EUR") && edittextdollars.length() > 0 && edittexteuros.length()==0) {
while (edittextdollars.equals("")) {
final ProgressDialog myPd_ring=ProgressDialog.show(getActivity(), "", "Loading...", true);
myPd_ring.setCancelable(true);
new Thread(new Runnable() {
@Override
public void run() {
try
{
convertvalues("USD", "EUR");
}catch(Exception e){
}
myPd_ring.dismiss();
}
}).start();
}
}
没有进度对话框,如下所示:
if (text1.equals("US Dollar - USD") && text2.equals("Euro - EUR") && edittextdollars.length() > 0 && edittexteuros.length()==0) {
convertvalues("USD", "EUR");
}
它可以工作,但是在返回值之前按下“计算”按钮几秒钟。我想要一个进度对话框来显示该值正在加载。我搜索了谷歌,但没有任何效果。对此问题的任何帮助表示赞赏。
PS我希望你发布代码,而不是仅仅说一个没有任何代码的解决方案。另外,请发布您认为对我有帮助的任何网站(如教程)。再次感谢。
编辑:
当我添加此代码时:
if (text1.equals("US Dollar - USD") && text2.equals("Euro - EUR") && edittextdollars.length() > 0 && edittexteuros.length()==0) {
myPd_ring = ProgressDialog.show(getActivity(), "", "Loading...", true, true);
new Thread(new Runnable() {
@Override
public void run() {
try {
convertvalues("USD", "EUR");
} catch(Exception e) {
}
}
}).start();
}
@Override
public void afterTextChanged(Editable arg0) {
myPd_ring.dismiss();
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
// TODO Auto-generated method stub
}
我已经实现了 TextWatcher,但它不起作用。progressdialog 将永远保留在那里,并且值不会改变。任何帮助将不胜感激。