我使用警报对话框作为登录。因此,关闭此对话框后,在对话框 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 的 Ok 按钮之前,所有的都已经在选项卡更改事件中工作了。我的标签事件如下
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 );
}
});
是否有适合登录的任何类型的对话框?怎么解决?