ここではAsyncTask
という結果の値を取得する方法はありますか。onPostExcecuteの結果の値をonCreateに取得する方法
public class JSONPicture extends AsyncTask<String,String,String> {
@Override
protected String doInBackground(String... params) {
HttpURLConnection connection = null;
BufferedReader reader = null;
try {
URL url = new URL(params[0]);
connection = (HttpURLConnection) url.openConnection();
connection.connect();
InputStream stream = connection.getInputStream();
reader = new BufferedReader(new InputStreamReader(stream));
StringBuffer buffer = new StringBuffer();
String line = "";
while ((line = reader.readLine()) != null) {
buffer.append(line);
}
String finalJSON =buffer.toString();
JSONObject parentObject = new JSONObject(finalJSON);
JSONArray parentArray = parentObject.getJSONArray("tbl_user");
JSONObject finalObject = parentArray.getJSONObject(0);
String firstname = finalObject.getString("userImage");
return firstname;
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (JSONException e) {
e.printStackTrace();
} finally {
if (connection != null) {
connection.disconnect();
}
try {
if (reader != null) {
reader.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
return null;
}
@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);
try {
com.nostra13.universalimageloader.core.ImageLoader.getInstance().displayImage(result, ivUser);
Log.d(TAG, result);
}catch (IllegalArgumentException e){
Log.d(TAG,e.toString());
}
}
}
私はこのようにonStart
で呼び出しています。だから私は読み込むことができます。私は画像の文字列を取得したいロードするとき。
@Override
protected void onStart() {
super.onStart();
new JSONPicture().execute("http://carkila.esy.es/carkila/profile/profileImage.php?username="+pref.getString("username","").toString());
}
このような画像をクリックすると、画像のURLを取得したいと考えています。
ivUser.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Log.d(TAG, ivUser.toString);
}
});
偉大な、+1 ..! * Androidタグのトップユーザーとしても、この短い質問にお答えできますか? **クラス**または**ファイル**または**プロジェクト**ごとに、1つの 'public static void main(){}'メソッドを持つべきですか? – Shafizadeh
どちらもありません。メインはデスクトップJavaで使用され、アンドロイドでは使用されません。基本的にmainはあなたのためにアンドロイドフレームワークで書かれています。あなたのエントリーポイントはランチャーアクティビティのonCreateです –