2012-11-21 38 views
0

構建對話框我想添加監聽器,但應用程序崩潰。什麼是錯誤的?在對話框中的按鈕上設置點擊監聽器時,應用程序崩潰...

private void Info(){ 

     textview = (TextView) findViewById(R.id.textView1); 

     LayoutInflater li = LayoutInflater.from(this); 
     View view = li.inflate(R.layout.info, null); 

     final AlertDialog.Builder builder = new AlertDialog.Builder(this); 
     builder.setView(view).create().show(); 

     buttonInfo = (Button)findViewById(R.id.buttonInfo); 

     buttonInfo.setOnClickListener(new View.OnClickListener() { 
       public void onClick(View view) { 

       } 
      }); 
+1

請分享崩潰日誌...和你是如何調用這個info()方法... –

+1

如果你的按鈕佈局信息.xml你需要做buttonInfo =(Button)view.findViewById(R.id.buttonInfo); –

回答

1

我猜這個按鈕位於對話框的佈局中。

如果是這種情況,試圖通過

buttonInfo = (Button) view.findViewById(R.id.buttonInfo); 

更換

buttonInfo = (Button)findViewById(R.id.buttonInfo); 

而且你需要存儲的創建AlertDialog(而不是生成器),如果你想後,駁回:

final AlertDialog dialog = new AlertDialog.Builder(this).setView(view).show(); 

    buttonInfo = (Button) findViewById(R.id.buttonInfo); 

    buttonInfo.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View view) { 
      dialog.dismiss(); 
     } 
    }); 
+0

正確!謝謝! –

+0

不客氣!如果有幫助,請不要忘記接受答案;) – fiddler

+0

builder.dismiss();不正確:所以我在AlertDialog.Builder之前添加「final」並修改爲:((DialogInterface)builder).dismiss();但沒有...再次崩潰。 –

2

替換

buttonInfo = (Button) view.findViewById(R.id.buttonInfo); 

通過

buttonInfo = (Button) findViewById(R.id.buttonInfo); 

最終代碼

private void Info(){ 

     textview = (TextView) findViewById(R.id.textView1); 

     LayoutInflater li = LayoutInflater.from(this); 
     View view = li.inflate(R.layout.info, null); 

     final AlertDialog.Builder builder = new AlertDialog.Builder(this); 
     builder.setView(view).create().show(); 

     buttonInfo = (Button) view.findViewById(R.id.buttonInfo); 

     buttonInfo.setOnClickListener(new View.OnClickListener() { 
       public void onClick(View view) { 

       } 
      }); 
+0

我不認爲AlertDialog.Builder類有一個findViewById()方法,是嗎? – fiddler

+0

是的,它的工作 –

+0

恐怕它不...看到http://developer.android.com/reference/android/app/AlertDialog.Builder.html – fiddler

相關問題