通过处理程序(ProgressDialog)传递edittext值

时间:2013-08-03 02:10:45

标签: java android

我在Android应用程序中遇到问题。我正在创建货币转换器。我需要创建一个progressdialog,当您将值从一种货币转换为另一种货币时出现。我已经发现我需要通过处理程序传递我的值,但我不知道如何做到这一点。

以下是我的代码的一部分:

        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();
        }

public String convertvalues(String convertfrom, String convertto) {
                    double current;
                    double val = Double.parseDouble(edittextdollars.getText().toString());
                    DecimalFormat df = new DecimalFormat(".##");
                     YahooCurrencyConverter ycc = new YahooCurrencyConverter();                  
                         try {
                            current = ycc.convert(convertfrom, convertto);
                            edittexteuros.setText(df.format(val*current)); 
                            return "passed";
                            }
                        catch (Exception e) {

                            return "passed";
                        }
private Handler handler = new Handler () {
    public void handleMessage(android.os.Message msg) {
        dialog1.dismiss();
        }
    }
};

progressdialog出现并消失,但后台没有任何反应。以下是我的应用程序的几个图片:

Before ProgressDialog

这是在progressdialog到来之前。

当我按下计算时:

When I press calculate

progressdialog结束后:

After the progressdialog goes

正如您所看到的,在progressdialog消失后,我的值不会转换。

在我的代码中,

convertvalues("USD", "EUR");

只是从互联网获取实际货币值,并将其与我的edittextdollars中的值相乘。没有任何问题,它没有progressdialog。我自己测试了很多次。

我在这里做错了什么?我已经检查了Google超过一周,但我找不到一个解决方案。请帮我实现这个目标。非常感谢任何有关此问题的帮助。

0 个答案:

没有答案