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();
}
嘿感謝,當你看它很明顯的:)謝謝 – turtleboy