2014-10-26 141 views
0

當按鈕被按下時,我試圖使對話框關閉。但每當我按下按鈕時,應用程序崩潰。對話框上的Android應用程序崩潰按鈕單擊

public class CanvasPaint extends Activity implements OnClickListener { 
    final Button widthbtn = (Button) findViewById(R.id.widthbtn); 
    final Button widthpopBtn = (Button) findViewById(R.id.widthpopBtn); 

    final Context context = this; 

    final Dialog widthDialog = new Dialog(context); 

    widthbtn.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 

       widthpopBtn.setOnClickListener(new View.OnClickListener() { 

        @Override 
        public void onClick(View v) { 
         widthDialog.dismiss(); 
        } 
       }); 
       widthDialog.show(); 
     } 
    }); 
} 
+2

請檢查您的logcat的,看看你的堆棧跟蹤:https://stackoverflow.com/questions/23353173/unfortunately-myapp-has-stopped-how-can-i-解決 - 這 – CommonsWare 2014-10-26 22:04:11

+0

一個upvote?真? – Simon 2014-10-26 23:00:56

+0

@jyoon第二個onclick用於對話框中的按鈕 – user2552211 2014-10-26 23:04:39

回答

0

這是一些初始代碼。爲什麼在點擊監聽器中設置點擊監聽器?它應該更像

widthbtn.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
      widthDialog.show(); 
    } 
}); 

widthpopBtn.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
      widthDialog.dismiss(); 
    } 
}); 
+0

當我這樣做的應用程序崩潰龐加載 – user2552211 2014-10-26 22:24:41

+0

然後無論是widthbtn或widthpopBtn爲空。正如@CommonsWare已經在上面陳述的那樣,檢查你的logcat /堆棧跟蹤。另外,如果您發佈的代碼是項目中的實際代碼,則您顯示的對話框將不會顯示爲空。 – prettyvoid 2014-10-26 22:28:57

0

你的對話框佈局適當充氣,因此,您widthpopBtn將是無效的。嘗試膨脹的佈局是這樣的:

LayoutInflater inflater = getLayoutInflater(); 
View dialogView = inflater.inflate(R.layout.your_dialog_layout, null); 
Button widthpopBtn = (Button) dialogView.findViewById(R.id.widthpopBtn); 
相關問題