2014-07-18 81 views
0

我寫了這段代碼,我想在用戶決定退出我的應用程序時使用它。 當我激活它Eclipse告訴我,是的按鈕有一個錯誤。這條線是有問題的:yes.setOnClickListener(new View.OnClickListener() { ,這是全碼: @Override public void onBackPressed() { // TODO Auto-generated method stub super.onBackPressed(); final Dialog exitDialog = new Dialog(this); exitDialog.setTitle("Exit"); exitDialog.setContentView(R.layout.exit_dialog);爲什麼onClickListener不工作?

yes.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      exitDialog.dismiss(); 
      finish(); 
     } 
    }); 

    exitDialog.show(); 
} 
+0

其中是按鈕裏面R.layout.exit_dialog? –

回答

-1

您應該使用

button.addActionListener(new ActionListener() { 

      @Override 
      public void actionPerformed(ActionEvent e) { 
       exitDialog.dismiss(); 
     finish() 
      } 
     }); 

,而不是OnClickListener。 另一個(更好的)選項是使用JOptionPane.showConfirmDialog(...);

+0

eclipse does not承認這個ActionListener ...不能導入它或其他任何東西 –

+0

聽衆是Swing,而不是Android。 – yushulx

+0

您的問題中沒有「Android」標記... – Kaskader

0

有2個可能出現的問題 月1日,因爲this關鍵字它引用的當前對話框類,以便讓你的ClassName.this

第二,因爲final關鍵字去掉final關鍵字,給聽者以onCreate(Bundle SavedInstances) method

0

如何你初始化按鈕是嗎?推薦的方法是:

public void onBackPressed() { 
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); 
     builder.setMessage(R.string.dialog_quit) 
       .setPositiveButton(R.string.confirm, new DialogInterface.OnClickListener() { 
        public void onClick(DialogInterface dialog, int id) { 
         finish(); 
        } 
       }) 
       .setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() { 
        public void onClick(DialogInterface dialog, int id) { 

        } 
       }); 

Dialog dialog = builder.create(); 
dialog.show(); 
} 

您也可以參考Android dialog guide