2012-11-22 32 views
0

我有這個代碼在android應用程序,它顯示了一個對話框時,按下菜單項,它工作正常,但是當我設置功能按鈕「發送」,從對話框,當菜單項被點擊時它會崩潰。我無法找到問題Android崩潰設置事件按鈕從對話框

private void showdialog (String ap){ 
    final Dialog dialog = new Dialog(this); 
    et =(EditText)dialog.findViewById (R.id.commentET); 
    send=(Button)dialog.findViewById(R.id.send); 
    send.setOnClickListener(sendOnClickListener); 
    dialog.setTitle(ap); 
    dialog.setContentView(R.layout.comment); 
    System.getProperty("line.separator"); 
    dialog.setCancelable(true); 
    dialog.show(); 
} 

Button.OnClickListener sendOnClickListener 
= new Button.OnClickListener(){ 



public void onClick(View arg0) { 
    s=et.getText().toString(); 
    dialog.dismiss(); 
} 
}; 




public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.aprobare_menu, menu); 
    return true; 
} 

public boolean onOptionsItemSelected(MenuItem item) 
    { 


     switch (item.getItemId()) 
     { 
     case R.id.aproba: 
      showdialog("Aprobat"); 
      return true; 

     case R.id.respinge: 
      showdialog("Respins"); 
      return true; 

     default: 
      return super.onOptionsItemSelected(item); 
     } 
     }  

}; 
+0

可以粘貼錯誤嗎? –

+1

顯示崩潰日誌。水晶玻璃破損 –

回答

1

嘗試改變順序,您撥打的setContentView:

private void showdialog (String ap){ 
final Dialog dialog = new Dialog(this); 
dialog.setContentView(R.layout.comment); 
et =(EditText)dialog.findViewById (R.id.commentET); 
send=(Button)dialog.findViewById(R.id.send); 
send.setOnClickListener(sendOnClickListener); 
dialog.setTitle(ap); 
System.getProperty("line.separator"); 
dialog.setCancelable(true); 
dialog.show(); 
} 

不知道,但。

1

設置contentView爲您的對話框發現通過ID的任何意見之前

private void showdialog (String ap){ 
    final Dialog dialog = new Dialog(this); 
    dialog.setContentView(R.layout.comment);// should be before findViewById 
    et =(EditText)dialog.findViewById (R.id.commentET); 
    send=(Button)dialog.findViewById(R.id.send); 
    send.setOnClickListener(sendOnClickListener); 
    dialog.setTitle(ap); 

    System.getProperty("line.separator"); 
    dialog.setCancelable(true); 
    dialog.show(); 
} 
+0

它的工作原理,謝謝 – user1269301

+0

很高興我可以幫助,接受答案,以便其他人可以從中獲得幫助:) – Houcine