사용자가 적어도 3 단계로 주문을 완료 할 수있는 온라인 주문 시스템이 있습니다. 내가 한 일을 AsyncTask를 통해 첫 번째 활동에서 세 번째 활동으로의 값 전달
에서 선택한 계획에 따라
- 만들기 선택 : 아래의 각 단계는 별도의 활동이다 1 단계에서 사용자가 계획 및 주문을 클릭하면 코드 아래에서 onClick이 실행됩니다. 두 번째 활동에서
Intent intent = new Intent(context, SelectDate.class); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); Bundle extras = new Bundle(); extras.putString("pass_selected_meal_plan_id",mp_id_pass); extras.putString("pass_selected_meal_name",mp_name_display); intent.putExtras(extras); context.startActivity(intent); Toast.makeText(context, mp_name_display+" Selected", Toast.LENGTH_SHORT).show();
없음
, 내가 주문 시작 날짜를 선택하도록 요구하고있다. 그것은 또한 간단하고 충분히 문제가되지 않습니다. 그러나 세 번째 활동으로 전환하려고 할 때 문제가 시작됩니다.세 번째 활동 내용은 첫 번째 활동에서 선택한 계획에 따라 다르므로 선택한 ID를 세 번째 활동으로 전송해야합니다. 나는 엑스트라 번들에서 "pass_selected_meal_plan_id"로 두 번째 활동을했습니다.
세 번째 활동을로드하는 방법도 중요합니다. 세 번째 활동을 시작하는 방법에는 두 가지가 있습니다. 첫 번째 버튼은 onClick을 다음 버튼에 놓으면 매우 간단합니다. 필요한 선택을 전송하는 것이 매우 간단하다고 가정합니다. 그러나이 경우 Android App Development의 초보자라는 것을 알고있는 한, 선택한 계획에 따라 콘텐츠를 클릭하고로드 할 수있는 버튼을 제공해야합니다.
두 번째 방법은 내가 사용하고자하는 것입니다. 두 번째 작업 onClick Next에서 AsyncTask를 실행하고 있습니다. 그것은 완벽하게 작동합니다. 유일한 것은 이전 액티비티, 즉 첫 번째 액티비티에서 onPostExecute에서 엑스트라를 가져올 수 없다는 것입니다.
전 세계 변수를 사용하는 경우에도 열려 있지만 수행 방법은 모르겠습니다. 글로벌 변수가 무엇인지 아는 대신, 나는 그 대신에 그들을 사용하기를 열망하지 않는다. 사람이 도울 수 있다면
가@Override protected void onPostExecute(String result) { Intent intent = new Intent(ctx, SelectMeals.class); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); Bundle extras = new Bundle(); //Instead of "1" I want the value from previous Activity, which already available in Extras from previous Activity extras.putString("pass_selected_meal_plan_id", "1"); //This is the second value I want to be transferred from first activity to the third activity extras.putString("pass_selected_meal_name","Test"); intent.putExtras(extras); ctx.startActivity(intent); }
정말 감사합니다 :
여기 내 onPostExecute 코드입니다.
두 번째 활동에는 첫 번째 활동에서 제공된 번들로 표시된 ID가 있습니다. 실제로 너를 다시 잡고 있는게 뭐야? 번들 밖으로 ID를 얻을 수 없습니까? – fluffyBatman
빠른 응답을 부탁드립니다. 문제는 거기에 정의 된 다음 활동에 대한 추가 기능으로 onPostExecute에서 값을 가져올 수 없다는 것입니다. AsyncTask없이 전송하면 완벽하게 작동합니다. 즉,이 문제의 해결책은 이전 활동의 getExtras를 onPostExecute의 puExtras에 할당하는 것입니다. –