【发布时间】:2016-02-13 14:40:12
【问题描述】:
我正在 Android 上编写一个 java 应用程序。 我有一个 Activity,它启动一个 AsyncTask 以便从服务器获取数据并呈现它。
我正在尝试在 onPostExecute() 方法中显示数据,但是 setContentView 和 populateUI(getApplicationContext()) 在其范围内未解决。 为什么?
如果运行这样的代码,而不添加 setContentView,我会在执行结束时得到一个空屏幕。没有出现异常。
public class CurrencyRatesActivity extends Activity
{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
new ReadCurrencyRateTask(this).execute("http://currency.xml");
}
}
public class ReadCurrencyRateTask extends AsyncTask<String, Integer, Integer>
{
private Context mainActivityContext;
public ReadCurrencyRateTask(Context mainActivityContext)
{
super();
this.mainActivityContext = mainActivityContext;
}
public Integer doInBackground(String... url)
{
// do some culculations
.......
return status;
}
protected void onPostExecute(Integer result)
{
// In case connection succeeded
TableLayout tbl = new TableLayout(mainActivityContext);
tbl.setStretchAllColumns(true);
tbl.bringToFront();
for (int i=0; i<currencyList.size(); i++)
{
TableRow tr = new TableRow(mainActivityContext);
TextView country = new TextView(mainActivityContext);
country.setText("...something...");
tr.addView(country);
}
}
}
谢谢
【问题讨论】:
-
你有两个独立的类 1 用于 Activity 和 1 用于 AsyncTask 吗?
-
是的,我有 2 个单独的课程
标签: java android android-asynctask