我有2个类MainActivity
和DialogBox
,我的* activity_main.xml *中有一个按钮,最初是不可点击的。我想在每次用户输入正确的用户名和密码时点击它,然后点击 confrim 或我的对话框中的setPositiveButton
。
以下是我对MainActivity的cpde:
public class MainActivity extends Activity {
Button buttonSetting;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
buttonSetting = (Button) findViewById(R.id.buttonSettings);
}
public void ShowDialog(View view) {
DialogBox dialogBox = new DialogBox();
dialogBox.show(getFragmentManager(), "Dialog Box");
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
这是我的DialogBox类:
public class DialogBox extends DialogFragment {
private static String username = "admin";
private static String password = "1234";
String typeUsername;
String typePassword;
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
final LayoutInflater layoutInflater = getActivity().getLayoutInflater();
View custom = layoutInflater.inflate(R.layout.custom, null);
final EditText editTextUsername = (EditText) custom.findViewById(R.id.editTextUsername);
final EditText editTextPassword = (EditText) custom.findViewById(R.id.editTextPassword);
builder.setView(custom);
typePassword = editTextPassword.getText().toString();
typeUsername = editTextUsername.getText().toString();
builder.setNegativeButton(R.string.cancel,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(getActivity(),
"Negative button was clicked",
Toast.LENGTH_SHORT).show();
}
});
builder.setPositiveButton(R.string.confirm,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
typePassword = editTextPassword.getText().toString();
typeUsername = editTextUsername.getText().toString();
if (typePassword.equals(password)
&& typeUsername.equals(username))
{
View activity = layoutInflater.inflate(R.layout.activity_main, null);
Button buttonSettings = (Button) activity.findViewById(R.id.buttonSettings);
buttonSettings.setEnabled(true);
Toast.makeText(getActivity(), "correct!",
Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(getActivity(), "Wrong input",
Toast.LENGTH_SHORT).show();
}
}
});
Dialog dialog = builder.create();
return dialog;
}
}
答案 0 :(得分:0)
您应始终listen
user inputs
并更改username
和password
框中的文字。但是,当试图随机输入文本的人可能很容易知道其正确的登录凭据时,这种方法很安静。您可以在android
text listeners
答案 1 :(得分:0)
试试这个..
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
buttonSetting = (Button) findViewById(R.id.buttonSettings);
// display the AlertDialog in your MainActivity
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
final LayoutInflater layoutInflater = getActivity().getLayoutInflater();
View custom = layoutInflater.inflate(R.layout.custom, null);
final EditText editTextUsername = (EditText) custom.findViewById(R.id.editTextUsername);
final EditText editTextPassword = (EditText) custom.findViewById(R.id.editTextPassword);
builder.setView(custom);
typePassword = editTextPassword.getText().toString();
typeUsername = editTextUsername.getText().toString();
builder.setNegativeButton(R.string.cancel,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(getActivity(),
"Negative button was clicked",
Toast.LENGTH_SHORT).show();
}
});
builder.setPositiveButton(R.string.confirm,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
typePassword = editTextPassword.getText().toString();
typeUsername = editTextUsername.getText().toString();
if (typePassword.equals(password)
&& typeUsername.equals(username))
{
//this will perform buttonSetting click function
buttonSetting.performClick();
Toast.makeText(getActivity(),
"correct!",
Toast.LENGTH_SHORT).show();
}
else
{
Toast.makeText(getActivity(),
"Wrong input",
Toast.LENGTH_SHORT).show();
}
}
});
Dialog dialog = builder.create();
}