[英]Currency Converter API not working in Android
我遇到一个问题,我的Yahoo Finance API无法在我的代码中使用。 我正在创建一个实时货币转换器。 我已经检查过Google,但似乎没有任何答案。 当我在应用程序中按下“计算”按钮时,什么也没有发生。 这是我输入的代码。
public interface CurrencyConverter {
public double convert(String currencyFrom, String currencyTo) throws Exception;
}
public class YahooCurrencyConverter implements CurrencyConverter{
public double convert(String currencyFrom, String currencyTo) throws IOException {
HttpClient httpclient = new DefaultHttpClient();
HttpGet httpGet = new HttpGet("http://quote.yahoo.com/d/quotes.csv?s=" + currencyFrom + currencyTo + "=X&f=l1&e=.csv");
ResponseHandler<String> responseHandler = new BasicResponseHandler();
String responseBody = httpclient.execute(httpGet, responseHandler);
httpclient.getConnectionManager().shutdown();
return Double.parseDouble(responseBody);
}
}
public void convertDollarstoEuros(){
double current;
double val = Double.parseDouble(edittextdollars.getText().toString());
DecimalFormat df = new DecimalFormat(".##");
YahooCurrencyConverter ycc = new YahooCurrencyConverter();
try {
current = ycc.convert("USD", "EUR");
edittexteuros.setText(df.format(val*current));
}
catch (Exception e) {
e.printStackTrace();
}
}
我的清单文件中具有互联网许可,并且我已在Android SDK中安装Google API。 我的代码似乎有问题,但我无法识别。 这是我删除try / catch方法时出现的内容:
任何帮助将不胜感激。
最有可能“什么也没有发生”,因为您正在捕获所有异常。 我建议您删除try...catch
块,或至少捕获您需要处理的特定异常,然后让Java异常系统为您完成其余的工作。 我强烈建议您了解有关Java异常处理系统的更多信息。 Oracle异常教程是一个很好的起点。 前两节课将为您提供99%的Android编程所需的基础知识。
此外,你应该检查logcat的,看是否有异常抛出。
编辑:有关异常的一点
请注意,弹出消息中的某些文本为蓝色。 这意味着您可以单击它,Eclipse将为您生成一些代码。 我建议您单击“围绕try / catch”,并注意生成的代码与您在此处发布的代码有何不同。 当您了解如何以及何时使用try / catch语句时,这是一个很好的工具。
在这种情况下,我认为“添加引发声明”是一个更好的选择。 单击它,看看会发生什么。 您极有可能在代码的其他地方得到类似的错误。 您应该继续向不知道如何处理异常的每个方法添加throws声明。 您只应在知道错误发生时该怎么办的方法中添加try / catch语句。 通常在UI代码中,例如Listener方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.