やりたいことといたしましては、
アクティビティのダイアログ上でonClickすることで、
画面遷移と非同期処理をおこない、
非同期処理で取得した値を別のアクティビティで出力したいです。
java
1@Override 2public void onClick(DialogInterface dialog, int which) { 3 4 AsyncDetail asyncTask = new AsyncDetail(this); 5 asyncTask.execute("URL", id); 6 getActivity().finish(); 7 8 9 Intent intent = new Intent(); 10 intent.setClassName("パッケージ名", "パッケージ名.アクティビティ名"); 11 startActivity(intent); 12 }
ここのonClickメソッドで非同期と画面遷移を行います。
AsyncTask側では、
java
1// バックグラウンド処理が終了した後にメインスレッドに渡す処理 2 protected void onPostExecute(String result) { 3 detailActivity.setResultDetailInfo(result); 4 }
detailActivityのsetResultDetailInfoメソッドに値を渡します。
java
1public class DetailActivity extends Activity { 2 3 TextView idText; 4 5 @Override 6 public void onCreate(Bundle savedInstanceState) { 7 super.onCreate(savedInstanceState); 8 setContentView(R.layout.activity_detail); 9 } 10 11 public void setResultDetailInfo(String result) { 12 try { 13 JSONObject json = new JSONObject(result); 14 JSONObject detailInfo = json.getJSONObject("details"); 15 int id = detailInfo.getInt("id"); 16 Log.e("idを出力", String.valueOf(id)); 17 } catch (Exception e) { 18 Log.e("Build location JSON", "error" + e); 19 } 20 } 21}
DetailActivity側でresultを取得して、
値を出力したいのですが、
onPostexecuteの
detailActivity.setResultDetailInfo(result);で、
java.lang.NullPointerException: Attempt to invoke virtual method 'void パッケージ名.DetailActirvity.onCreate(java.lang.String)' on a null object reference
とのエラーが出てしまいました。
解決策をご教授いただければと思います。
よろしくお願いいたします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/10/02 02:45