我使用警報對話框作爲登錄。因此,在關閉此對話框後,對話框show()中分配的任何值都將丟失。如何找回這個值?我的代碼如下想要在關閉警報對話框後取回任何值
private void accessPinCode()
{
LayoutInflater factory = LayoutInflater.from(this);
final View textEntryView = factory.inflate(R.layout.dialog_login, null);
AlertDialog.Builder alert = new AlertDialog.Builder(this);
alert.setTitle("Title");
alert.setMessage("Enter Pin :");
alert.setView(textEntryView);
alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
EditText mUserText;
mUserText = (EditText) textEntryView.findViewById(R.id.txt_password);
//String strPinCode = mUserText.getText().toString();
Log.d(TAG, "Pin Value 1 : " + mUserText.getText().toString());
strPIN = mUserText.getText().toString();
Log.d(TAG, "strPIN inside accessPinCode : " + strPIN);
fPIN= checkPINCode();
Log.d(TAG, "fPass : " + fPIN);
return;
}
});
alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
return;
}
});
alert.show();
Log.d(TAG, "strPIN outside Alert Show : " + strPIN);
}
基於我的代碼,strPIN和FPIN值都將丟失。我想在accessPinCode函數外部使用這些值。如何獲得?
其實,我在tabchanged事件中調用這個函數。如果登錄通過,用戶可以訪問另一個選項卡。但是,在點擊AlertDialog的確定按鈕之前,全部已經在製表符更改的事件中工作。我的標籤事件如下
tabHost.setOnTabChangedListener(new OnTabChangeListener() {
public void onTabChanged(String tabId) {
// TODO Auto-generated method stub
if (tabId.equals("index"))
{
tabHost.setCurrentTab(1);
accessPinCode();
}
Log.d(TAG, "tabId : "+ tabId);
}
});
是否有任何類型的適合於登錄的對話框?怎麼解決?
小建議:使用'android.R.string.ok'和'android.R.string.cancel'來代替「Ok」和「Cancel」。 – Felix 2010-06-29 10:44:24
謝謝。我將 – soclose 2010-06-29 13:29:49
最後,我沒有在Tab OnChanged事件中調用accessPinCode,而是將所有的alertDialog創建在這個事件中。因爲如果登錄通過,我想設置當前選項卡。謝謝你們。 – soclose 2010-06-30 03:00:56