0
我必須使用AsyncTask來填充列表視圖的結果。 這裏是我的代碼:AsyncTask結果處理
public class MyActivity extends Activity {
MainActivity ob;
String url_connectX = "http://hosr.com/test/getjson.php";
Httppostaux post;
JSONArray lststat;
public JSONArray liststatus() {
JSONArray jdata=post.getserverdataX(url_connectX);
return jdata;
}
@Override
protected void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.my_new_screen);
post = new Httppostaux();
new asyncpost().execute();
}
//************************************************************************************
class asyncpost extends AsyncTask< String, String, String > {
List<String> listContents;
protected void onPostExecute(String result) {
pDialog.dismiss();
if (result.equals("ok")){
ListView myListView = (ListView) findViewById(R.id.ListView1);
Log.e("JSON log", "This is my problem = "+listContents);
myListView.setAdapter(new ArrayAdapter<String>(MyActivity.this, android.R.layout.simple_list_item_1, listContents));
}else{
Log.e("JSON log", "ListContents has problems."+listContents);
err_getlista();
}
}
protected String doInBackground(String... params) {
lststat = liststatus();
if (lststat != null){
if (lststat != null && lststat.length() > 0){
JSONObject json_data;
try {
int length = lststat.length();
List<String> listContents = new ArrayList<String>(length);
for (int i = 0; i < length; i++)
{
json_data = lststat.getJSONObject(i);
listContents.add(json_data.getString("client_name"));
}
} catch (Exception e) {
Log.e(null, e.toString());
}
}
return "ok";
}else{
return "err";
}
}
public void err_getlista(){
Toast toast1 = Toast.makeText(getApplicationContext(),"Error", Toast.LENGTH_SHORT);
toast1.show();
}
}
//************************************************************************************
}
listContents結束NULL。爲什麼?看來,在postExecute的某處,listContent的值變爲NULL,即使在doInBackGround中似乎有一個非NULL值。我不明白這個 我怎麼修復它?
我會從來沒有見過這個......非常感謝。它解決了我的問題。 – user1137313