現在、JSync接続からデータを取得するAsyncTaskから値を取得できません。私はいくつかの例を見てきましたが、主に私はAsyncTaskの結果を投稿するだけでした。AsyncTask戻り値
まず、私は唯一の文字列、名前を持っている犬と呼ばれるオブジェクトを持っています。私は犬の名前をサーバーから取得しようとしています。 私のoncreateで次のコードを使用すると、DogAsyncTaskが起動し、nとDog d_inというURLが取得されます。
Dog d_in = new Dog("DogName");
DogAsyncTask task = new DogAsyncTask(d_in);
String n = "www.dog.com";
task.execute(n);
Log.e("Out", d_in.getName());
私のAsyncTaskは次のとおりです。
private class DogAsyncTask extends AsyncTask<String, Void, String> {
Dog d = null;
DogAsyncTask(Dog d){
this.d = d;
}
ProgressDialog mProgressDialog;
@Override
protected void onPostExecute(String result) {
d.setName(result);
Log.e("Dog", d.getName());
mProgressDialog.dismiss();
}
@Override
protected void onPreExecute() {
mProgressDialog = ProgressDialog.show(AsyncTestActivity.this, "Loading...", "Data is Loading...");
}
@Override
protected String doInBackground(String... name) {
//Go to url = name and then gets String below.
String outfromjson = "new dog name"; //This will be a function that gets a name from JSON
return outfromjson;
}
}
私は Log.eのようなものを使用してみました( "アウト"、task.d.getName()); しかし、私は "DogName"である犬のデフォルト名を取得し続けています。 AsyncTaskから値を取り出す方法は?
[この回答を見る](http://stackoverflow.com/a/7618705/593709) –
はい、 Log.e( "Dog"、d.getName())は "新しい犬の名前"としてのdognameを表示します –
あなたの助けてくれてありがとうAdil、私はそれを読んだときにあなたを理解していませんでしたが、よく –