2012-10-12 61 views
0

我試圖從EditText獲取文本,但我已註銷EditText並且它爲空。我試圖從自定義視圖中誇大它。我是否錯誤地給它充氣?從自定義對話框視圖充氣時,EditText爲null

我知道prompsView是我的自定義AlertDialog視圖,並在那是我的EditText。也許我應該在充氣時通過prompsView,只是不知道該怎麼做。

public void showPasswordDialogBox(){ 

     LayoutInflater li = LayoutInflater.from(NfcscannerActivity.this); 
     View promptsView = li.inflate(R.layout.passwordpromptdialogboxlayout, null); 

     AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
       NfcscannerActivity.this); 

     // set prompts.xml to alertdialog builder 
     alertDialogBuilder.setView(promptsView); 



     // set dialog message 
     alertDialogBuilder 
      .setCancelable(false) 
      .setPositiveButton("OK", 
       new DialogInterface.OnClickListener() { 
       public void onClick(DialogInterface dialog,int id) { 
        EditText passwordPin = (EditText)findViewById(R.id.passwordprompttextview); 
        Log.e(TAG, "edittext is null ? " + passwordPin); 
        String passPin = passwordPin.getText().toString(); 
        Log.e(TAG, "password from edittext = " + passPin); 

        Cursor c = nfcscannerapplication.loginValidate.queryAllFromCarer(); 
        if(c != null){ 
         c.moveToLast(); 
         String passPinFromDB = c.getString(c 
           .getColumnIndex(LoginValidate.C_PASSWORD)); 

         if (passPin.trim().equalsIgnoreCase(passPinFromDB)){ 

          Log.e(TAG, "passwords match"); 
          DateTime now = new DateTime(); 
          DateTimeFormatter fmt = DateTimeFormat.forPattern("d-MMM-Y"); 
          String formattedNow = fmt.print(now); 
          String[] params = new String[]{carerID, formattedNow}; 
          AsyncGetRota agr = new AsyncGetRota(); 
          agr.execute(params); 

         }else{ 
          Toast.makeText(NfcscannerActivity.this, 
            "Please check Password/Pin", 
            Toast.LENGTH_LONG).show(); 
          showPasswordDialogBox(); 
         } 

        }else{ 
         Log.e(TAG, "cursor null while trying to verify password in showPasswordDialogBox() "); 
        } 

       } 
       }) 
      .setNegativeButton("Cancel", 
       new DialogInterface.OnClickListener() { 
       public void onClick(DialogInterface dialog,int id) { 
       dialog.cancel(); 
       } 
       }); 

     // create alert dialog 
     AlertDialog alertDialog = alertDialogBuilder.create(); 



     // show it 
     alertDialog.show(); 
    } 

回答

2

嘗試:

EditText passwordPin = (EditText) promptsView.findViewById(R.id.passwordprompttextview); 
+0

嘿感謝,當你看它很明顯的:)謝謝 – turtleboy

相關問題