gpt4 book ai didi

java - 加载数据时的进度对话框

转载 作者:行者123 更新时间:2023-12-01 04:30:24 27 4
gpt4 key购买 nike

我的 Android 应用程序遇到问题。我正在创建一个货币转换器。我需要创建一个进度对话框,当您将值从一种货币转换为另一种货币时,该对话框就会出现。

这是我的代码的一部分:

        if (text1.equals("US Dollar - USD") && text2.equals("Euro - EUR") && edittextdollars.length() > 0 && edittexteuros.length()==0) {
dialog1 = ProgressDialog.show(getActivity(), "", "Calculating...");
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
try{
convertvalues("USD", "EUR");
handler.sendEmptyMessage(0);
}
catch (Exception e) {
edittexteuros.setText("Error");
}

}
});
thread.start();
}
private Handler handler = new Handler () {
public void handleMessage(android.os.Message msg) {
switch (msg.what) {
case 0:
dialog1.dismiss();
break;
}
}
};

进度对话框出现然后消失,但后台没有任何反应。以下是我的应用程序的一些图片:

Before ProgressDialog

这是在进度对话框出现之前。

当我按下计算时:

When I press calculate

进度对话框完成后:

After the progressdialog goes

如您所见,进度对话框消失后,我的值不会转换。

在我的代码中,

convertvalues("USD", "EUR");

只是从互联网获取实际的货币值(value),并将其与我的编辑文本中的值(value)相乘。它没有任何问题,并且在没有进度对话框的情况下也能正常工作。我自己已经测试过很多次了。

我在这里做错了什么?我已经检查了谷歌一个多星期,但找不到单一的解决方案。非常感谢有关此问题的任何帮助。

最佳答案

就像在处理程序中更新进度对话框一样,您还必须在处理程序中更新 EditTexts(因为它必须在 UI 线程上运行)。因此,理想情况下,您应该从 ConvertValues 返回结果,然后通过消息将其传递给处理程序。

关于java - 加载数据时的进度对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18027013/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com