2013-05-26 5 views
-1

주 활동에 세 개의 탭 ADMINISTRADOR가 있습니다.AlertDialog가 ActivityGroup 내에서 작동하지 않습니다.

05-25 20:06:58.025: E/AndroidRuntime(26021): FATAL EXCEPTION: main 
05-25 20:06:58.025: E/AndroidRuntime(26021): android.view.WindowManager$BadTokenException: Unable to add window -- token [email protected] is not valid; is your activity running? 
05-25 20:06:58.025: E/AndroidRuntime(26021): at android.view.ViewRoot.setView(ViewRoot.java:505) 
05-25 20:06:58.025: E/AndroidRuntime(26021): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:177) 
05-25 20:06:58.025: E/AndroidRuntime(26021): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91) 
05-25 20:06:58.025: E/AndroidRuntime(26021): at android.view.Window$LocalWindowManager.addView(Window.java:424) 
05-25 20:06:58.025: E/AndroidRuntime(26021): at android.app.Dialog.show(Dialog.java:241) 
05-25 20:06:58.025: E/AndroidRuntime(26021): at utp.android.aplicacion.ListarAlumnos$1.run(ListarAlumnos.java:170) 
05-25 20:06:58.025: E/AndroidRuntime(26021): at android.app.Activity.runOnUiThread(Activity.java:3707) 
05-25 20:06:58.025: E/AndroidRuntime(26021): at utp.android.aplicacion.ListarAlumnos.onItemClick(ListarAlumnos.java:149) 
05-25 20:06:58.025: E/AndroidRuntime(26021): at android.widget.AdapterView.performItemClick(AdapterView.java:284) 
05-25 20:06:58.025: E/AndroidRuntime(26021): at android.widget.ListView.performItemClick(ListView.java:3382) 
05-25 20:06:58.025: E/AndroidRuntime(26021): at android.widget.AbsListView$PerformClick.run(AbsListView.java:2394) 
05-25 20:06:58.025: E/AndroidRuntime(26021): at android.os.Handler.handleCallback(Handler.java:587) 
05-25 20:06:58.025: E/AndroidRuntime(26021): at android.os.Handler.dispatchMessage(Handler.java:92) 
05-25 20:06:58.025: E/AndroidRuntime(26021): at android.os.Looper.loop(Looper.java:123) 
05-25 20:06:58.025: E/AndroidRuntime(26021): at android.app.ActivityThread.main(ActivityThread.java:4627) 
05-25 20:06:58.025: E/AndroidRuntime(26021): at java.lang.reflect.Method.invokeNative(Native Method) 
05-25 20:06:58.025: E/AndroidRuntime(26021): at java.lang.reflect.Method.invoke(Method.java:521) 
05-25 20:06:58.025: E/AndroidRuntime(26021): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860) 
05-25 20:06:58.025: E/AndroidRuntime(26021): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 
05-25 20:06:58.025: E/AndroidRuntime(26021): at dalvik.system.NativeStart.main(Native Method) 

주요 활동 :

public class Administrador extends TabActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_administrador); 

     TabHost tabHost = getTabHost(); 

     TabSpec photospec = tabHost.newTabSpec("Mantenimiento"); 
     photospec.setIndicator("Mantenimiento", getResources().getDrawable(R.drawable.icon_photos_tab)); 
     Intent photosIntent = new Intent(this, ListarAlumnos.class); 
     photospec.setContent(photosIntent); 

     TabSpec songspec = tabHost.newTabSpec("Asignaciones"); 
     songspec.setIndicator("Asignaciones", getResources().getDrawable(R.drawable.icon_songs_tab)); 
     Intent songsIntent = new Intent(this, Asignaciones.class); 
     songspec.setContent(songsIntent); 

     TabSpec videospec = tabHost.newTabSpec("Reportes"); 
     videospec.setIndicator("Reportes", getResources().getDrawable(R.drawable.icon_videos_tab)); 
     Intent videosIntent = new Intent(this, Reportes.class); 
     videospec.setContent(videosIntent); 

     // Adding all TabSpec to TabHost 
     tabHost.addTab(photospec); // Adding photos tab 
     tabHost.addTab(songspec); // Adding songs tab 
     tabHost.addTab(videospec); // Adding videos tab 



    } 

} 

활동 첫 번째 탭의 각 항목을 클릭 나는 다음과 같은 오류를 가지고에 AlertDialog 떠날해야 할 때 목록보기와 groupactivity 내의 다른 활동에 내게 전화 ListarAlumnos는 :

public class ListarAlumnos extends ActivityGroup implements OnItemClickListener{ 


    public static MenuAdministrador context; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     View viewToLoad = LayoutInflater.from(this.getParent()).inflate(R.layout.activity_listar_alumnos, null); 
     this.setContentView(viewToLoad); 

     //setContentView(R.layout.activity_listar_alumnos); 




     lstalumnos = (ListView)findViewById(R.id.LISTAPRUEBA); 
     lstalumnos.setOnItemClickListener(this); 

     ///THE LISTVIEW CONTAINS DATA OF DATABASE 

    } 



    public void onItemClick(AdapterView<?> arg0, View arg1, final int arg2, long arg3) { 

     Toast.makeText(getApplicationContext(), "ok", 1000).show(); 
      //Context appContext = this.getApplicationContext(); 
      //Dialog builder = new Dialog(appContext); 

     runOnUiThread(new Runnable() { 

      public void run() { 
       // TODO Auto-generated method stub 

       final AlertDialog.Builder builder = new AlertDialog.Builder(getParent()); 
       ///builder.setTitle("Matenimiento de "+ Apellido.get(arg2)); 
       ///builder.setMessage("Por favor, escoger accion : "); 
       ///builder.setPositiveButton("Actualizar", new DialogInterface.OnClickListener() 
       ///{ 

       ///public void onClick(DialogInterface dialog, int which) { 
       ///Actualizar(arg2); 
       ///} 
       ///}); 
       ///builder.setNegativeButton("Deshabilitar", new DialogInterface.OnClickListener() { 

       ///public void onClick(DialogInterface dialog, int which) { 
       ///  Eliminar(arg2); 
       ///} 
       ///}); 
       builder.create().show();    


      }}) 
     ; 

    } 

답변

0

유사한 문제를 처리하는 많은 질문이 있습니다. 문맥에 문제가있는 것 같습니다. 참조 :

how to show alert inside an activity group?

Dialog Box in Activity group inside a TabActivity not working

Problems on an activitygroup under tabshost

희망이 도움이됩니다.

+0

그게 나를 위해 일하지 않는다 : ( –

+0

각 액티비티에는 각각의 컨텍스트가있는 대화 상자가 있어야한다고 생각합니다. 실행해야하는 다른 활동이 이미 끝났을 때 대화 상자를 열려고 할 때이 오류가 발생합니다. Dialobox가 나타나고 열려있는 활동이 파손될 때도 발생할 수 있습니다. –

+0

당신은 맞습니다!하지만 getParent()는 나와 나와 진실을 위해 일하지 않고 모든 것을 시도했습니다. 답장을 보내 주셔서 감사합니다. –

관련 문제