2016-08-14 65 views
1

內部意見我從這裏無法訪問AlertDialog

Android custom numeric keyboard

複製整個代碼,並用它的AlertDialog內。現在,當我調試應用程序時,onClick()未被調用。

AlertDialog.Builder builder = new AlertDialog.Builder(context); 
       builder.setView(R.layout.keypad_layout); 
       builder.setCancelable(false).setNegativeButton("Cancel", new DialogInterface.OnClickListener() { 
        @Override 
        public void onClick(DialogInterface dialogInterface, int i) { 
        } 
       }); 
       builder.setPositiveButton("Modify", new DialogInterface.OnClickListener() { 
        @Override 
        public void onClick(DialogInterface dialogInterface, int i) { 

        } 
       }); 
       builder.create().show();\ 

警報對話框顯示陽性和陰性按鈕的工作唯一的問題是,我不能訪問裏面的佈置意見

+0

我認爲它被調用,但調試器不會停在空函數。所以試着插入一個像String s =「test」這樣的命令; – Chris623

+0

KeyboardView類中的onClick()方法,而不是AlertDialog的onClick –

+0

什麼是「我無法訪問佈局內的視圖」的意思,具體是什麼? – laalto

回答

1

原來,AlertDialog返回一個view

AlertDialog dialog = builder.create(); 
dialog.show(); 
mPasswordField = (EditText) dialog.findViewById(R.id.password_field); 

這對我來說伎倆。

0

您需要先膨脹佈局視圖實例,那麼你可以設置對於鍵OnClickListeners:

LayoutInflater inflater = LayoutInflater.from(context); 
View mView = inflater.inflate(R.layout.keypad_layout, null); 
builder.setView(mView); 

final TextView key8 = (TextView) mView.findViewById(R.id.t9_key_8); 
key8.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       // do something 
      } 
     }); 

再講什麼,我也做了key8與其他鍵