2013-10-29 158 views
0

我试图在处理程序中显示警告对话框,但我无法显示警报。你能帮我看看错误在哪里吗?android无法在处理程序中显示警告对话框

Handler myHandler = new Handler() { 
    public void handleMessage(Message msg) { 
       myDialog.show();      
       super.handleMessage(msg); 
    } 
    }; 

class myThread implements Runnable { 
    public void run() { 
     try { 


      myHandler.sendMessage(message); 


     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 

}

在的onCreate:

myDialog= new AlertDialog.Builder(this).create(); 
    myDialog.setTitle("hi"); 
    myDialog.setMessage("thanks"); 
    myDialog.setButton("Next...",new DialogInterface.OnClickListener() 
    { 

     @Override 
     public void onClick(DialogInterface dialog, int which) 
     { 

     } 
    }); 

    new Thread(new myThread()).start(); 
.... 

我定义将myHandler和MyThread的。然后在onCreate中,我定义了一个对话框。然后调用mythread运行。我想这个mythread会发送一个消息给myHandler。然后,Myhandler将触发对话框。逻辑有什么问题?谢谢。

回答

1

更新您处理程序这样

Handler myHandler = new Handler() { 
    public void handleMessage(Message msg) { 
       super.handleMessage(msg); 

       String aResponse = msg.getData().getString("message"); 
        if ((null != aResponse)) { 
          //Show dialog 
          myDialog.show(); 
        } 
       else{ 
         // ALERT MESSAGE 
         Toast.makeText(getBaseContext(), 
             "No message from Thread", 
             Toast.LENGTH_SHORT).show(); 
         }  

    } 
    };    

,并在这样

class myThread implements Runnable { 
    public void run() { 
     try { 

          Message msgObj = myHandler.obtainMessage(); 
          Bundle b = new Bundle(); 
          b.putString("message", msg); 
          msgObj.setData(b); 
          myHandler.sendMessage(msgObj); 


     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 
你的线程更新