아무도이 문제를 해결하지 못하는 이유를 모릅니다.다른 활동에서 경고 대화 상자를 표시하는 데 오류가 발생했습니다 (활동이 파괴되지 않도록)
여기 완전히 엉망입니다. 나는 안드로이드 애플 리케이션을 만들고 현재 3 가지 활동의 운영에 문제가있다.
나는 Activity3 activity1에, activity2에 및 있습니다.
액티비티 1 : 데이터를 AsyncTask(background)
에 수신하고 listView를 표시합니다. listView Item에서 onClick
액션으로 alertDialog를 표시 중입니다.
내가 new NameAsyncTask(Activity1.this).execute();
로 AsyncTask
클래스를 호출하고있어 AsyncTask
public NameAsyncTask(Context cxt) {
context = cxt;
pDialog = new ProgressDialog(context);
adapter = new SimpleAdapter(
context, dataList,
R.layout.list_incident, new String[]{"refName", "sub", "status", "categ", "createTime", "organisation"},
new int[]{R.id.in_name, R.id.sub, R.id.status,R.id.categ_show, R.id.created_time_show, R.id.cust_name});
binder = new SimpleAdapter.ViewBinder() {
@Override
public boolean setViewValue(View view, Object data, String textRepresentation) {
if (view.equals((TextView)view.findViewById(R.id.status))) {
statusText = (TextView)view.findViewById(R.id.status);
if (data.equals("Unresolved"))
statusText.setTextColor(context.getResources().getColor(R.color.red));
else if (data.equals("In Progress"))
statusText.setTextColor(context.getResources().getColor(R.color.yellow));
}
return false;
}
};
}
에 생성자를 사용하고 activity2에 : 그것을 클릭으로 목록보기의 항목의 세부 정보를 표시합니다. 마지막으로 finish()
을 호출하면 Activity3
에 들어갑니다.
Activity3 : 항목의 세부 사항을 업데이트하고 1st activity
때문에 해당 항목이 first activity
에서 제거되고 목록보기가 업데이트됩니다 new NameAsyncTask(Activity3.this).execute();
등의 AsyncTask(background)
를 호출. finish()
으로 전화하면 첫 번째 활동으로 바로 이동합니다 (두 번째 활동이 이미 완료되었으므로). 다시 내가 목록보기 항목을 클릭하면
이제 문제는, 그것은 또한 distroyed지고 Activity1
여부,
final AlertDialog.Builder alertDialog = new AlertDialog.Builder(Activity1.this);
확실하지 않음이 라인에
java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.pm.ApplicationInfo android.content.Context.getApplicationInfo()' on a null object reference
at android.content.ContextWrapper.getApplicationInfo(ContextWrapper.java:149)
at android.view.ContextThemeWrapper.getTheme(ContextThemeWrapper.java:157)
at android.support.v7.app.AlertDialog.resolveDialogTheme(AlertDialog.java:113)
at android.support.v7.app.AlertDialog$Builder.<init>(AlertDialog.java:291)
at com.lavazza.IncidentServiceActivity$GetPendingIncidents$2.onItemClick(IncidentServiceActivity.java:267)
at android.widget.AdapterView.performItemClick(AdapterView.java:310)
at android.widget.AbsListView.performItemClick(AbsListView.java:1156)
at android.widget.AbsListView$PerformClick.run(AbsListView.java:3121)
at android.widget.AbsListView.onTouchUp(AbsListView.java:4048)
at android.widget.AbsListView.onTouchEvent(AbsListView.java:3807)
at android.view.View.dispatchTouchEvent(View.java:10023)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2626)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2307)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2632)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2321)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2632)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2321)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2632)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2321)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2632)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2321)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2632)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2321)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2632)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2321)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2632)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2321)
at com.android.internal.policy.DecorView.superDispatchTouchEvent(DecorView.java:413)
at com.android.internal.policy.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1808)
로 오류가 발생합니다.
listView의 경우 adapter
이고 두 활동 모두의 경우 binder
이 작동합니다. 그러나 alertDialog
에서는 작동하지 않습니다. 생성자에 final AlertDialog.Builder alertDialog = new AlertDialog.Builder(context);
을 선언 할 때. 액티비티 1에서 정상적으로 작동합니다.
나는이 AsyncTask
Activity1Obj.new GetPendingIncidents(Activity3.this).execute();
와 Activity3에서 여기에 내가 믿는 자동으로 파괴 된 activity1에
android.view.WindowManager$BadTokenException: Unable to add window -- token [email protected] is not valid; is your activity running?
at android.view.ViewRootImpl.setView(ViewRootImpl.java:679)
at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:342)
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:93)
at android.app.Dialog.show(Dialog.java:322)
at com.lavazza.IncidentServiceActivity$GetPendingIncidents$2.onItemClick(IncidentServiceActivity.java:338)
로 오류가 발생합니다 실행합니다. 틀 렸으면 고쳐줘.
가 이미 을 시도 ->getParent
, getApplicationContext
, getBaseContext
등의 AlertDialog 선언에 context
을 변경. 아무것도 효과가 없습니다. 나는 Activity3
에서 돌아온 후에 alertDialog
을 표시해야합니다.
나를 도와 줄 사람이 있습니까? 아직도 나는 이것을 수행하는 방법을 생각하고있다.
여기'MyApplication'은 (는)'app name'을 (를) 참조합니까? – Shambhu
저를 위해 일하지 않았습니다. – Shambhu
'MyApplication'은 주 활동과 같습니다. 선언문에서 설명하고 '응용 프로그램'을 확장하는 클래스를 만들어야합니다. – dralexnumber