我在这样的课程中有一个课程:
public class MainActivity extends ListActivity {
ArrayList<HashMap<String, String>> arrayInfo;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.connection_beging);
arrayInfo = new ArrayList<HashMap<String, String>>();
...
button_connection.setOnClickListener(new View.OnClickListener(){
public void onClick(View R){
new GetInfoConnexion().execute();
arrayInfo.get(0).get(TAG_FIRSTNAME); // Not working because arrayInfo is null
}
}
}
private class GetInfoConnexion extends AsyncTask<Void, Void, Void> {
protected Void doInBackground(Void... arg0) {
...
arrayInfo.add(info); //all datas are placed into arrayInfo.
// This works perfectly.
arrayInfo.get(0).get(TAG_FIRSTNAME); // example work !
}
}
}
如何检索放置在arrayInfo中的数据以供类MainActivity使用? (更准确地说,是在新的GetInfoConnexion()。execute();之后的onCLick()中)。
先感谢您。
最佳答案
啊,好的,我明白了你现在的要求。您不会在onClick中访问它。将一个名为onPostExecute的函数添加到您的AsyncTask中,然后将要使用的代码放在其中。您无法在onClick上执行此操作的原因是因为AsyncTask并行运行并且尚未完成。完成后将调用onPostExecute。