gpt4 book ai didi

android - 执行过程后,Spinner 对象不会接受第二个输入

转载 作者:太空狗 更新时间:2023-10-29 14:09:27 25 4
gpt4 key购买 nike

我正在开发一个财务应用程序,我在其中使用 Yahoo Finance Api 填充交换货币值这是我的实现

void currency_widget() {
from.setAdapter(new CurrencyListAdapter(getActivity(), R.layout.country_list_item, recourseList));
from.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
String m = (String) Array.get(recourseList, i);
String[] ma = m.split(",");
Locale locale = new Locale("en_US", ma[1]);
c2 = Currency.getInstance(locale);
}

@Override
public void onNothingSelected(AdapterView<?> adapterView) {
}
});


to.setAdapter(new CurrencyListAdapter(getActivity(), R.layout.country_list_item, recourseList));
to.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
String m = (String) Array.get(recourseList, i);
String[] ma = m.split(",");
Locale locale = new Locale("en_US", ma[1]);
c1 = Currency.getInstance(locale);
}

@Override
public void onNothingSelected(AdapterView<?> adapterView) {
}
});


}

public class connection extends AsyncTask {
@Override
protected Object doInBackground(Object... arg0) {
connect();
return null;
}

private void connect() {
try {
String as = c2 + "" + c1 + "=" + "X";
// FxQuote ab=YahooFinance.getFx(FxSymbols.)
FxQuote usdeur = null;
try {
usdeur = YahooFinance.getFx(as);
edittxt.setText("" + usdeur);
} catch (Exception e) {
e.printStackTrace();
edittxt.setText("No Internet Connection");
}
} catch (Exception e) {
e.printStackTrace();
}
}
}

在此我有两个微调器对象,允许用户选择他们想要的货币 from 是第一个微调器对象,to 是第二个微调器对象。

到目前为止,一切都按预期正常工作。 点击get按钮执行操作时出现问题

get.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
new connection().execute(); //TODO Spinner won't take second time input
}
});

它也显示该值,但是如果我第二次尝试更改微调器项目,它不会反射(reflect)任何内容,也就是说,我点击了微调器,出现了下拉菜单,但我更改了值,但它赢了'显示项目选择过程已完成并且下拉按钮已关闭因此微调项目固定在第一个位置

Solved

根据收到的答案更改代码并且有效

@Override
protected Object doInBackground(Object... arg0) {
// connect();
String as = c2 + "" + c1 + "=" + "X";
// FxQuote usdeur = YahooFinance.getFx(as);
return YahooFinance.getFx(as);
}

@Override
protected void onPostExecute(Object o) {
super.onPostExecute(o);
try {
edittxt.setText("" + o);
} catch (Exception e) {
e.printStackTrace();
edittxt.setText("No Internet Connection");
}
}

最佳答案

我没有检查你所有的代码,但我看到你在打电话

edittxt.setText("No Internet Connection");doInBackground() 上是错误的。

您必须在UI-Thread 上运行的postExecute()setText

doInBackground() 上返回 usdeur 并在 postExecute() 上返回 setText

关于android - 执行过程后,Spinner 对象不会接受第二个输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30168992/

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