因此,在函数中,我调用另外两个创建对话框的函数,但只显示一个对话框(showName中的名称)。
有什么想法吗?这是我的代码:
void showDialogs() {
showEula();
showName();
}
void showName () {
final Dialog dialog = new Dialog(this);
dialog.setContentView(R.layout.name);
dialog.setTitle(res.getString(R.string.nameTitle));
dialog.setCancelable(false);
//eula objects
final Button OK = (Button) dialog.findViewById(R.id.OK);
final CheckBox remember = (CheckBox) dialog.findViewById(R.id.rememberName);
final TextView name = (TextView) dialog.findViewById(R.id.name);
if(getSharedPreferences("Settings", MODE_PRIVATE).getBoolean("rememberName",false) == true){
name.setText(getSharedPreferences("Settings", MODE_PRIVATE).getString("Name", "Type Your Name Here"));
}
remember.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v){
SharedPreferences.Editor editor = getSharedPreferences("Settings", MODE_PRIVATE).edit();
if (remember.isChecked()) {
editor.putBoolean("rememberName",true);
editor.commit();
} else {
editor.putBoolean("rememberName",false);
editor.commit();
}
}
} );
OK.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
SharedPreferences.Editor editor = getSharedPreferences("Settings", MODE_PRIVATE).edit();
editor.putString("Name", name.getText().toString());
editor.commit();
if (getSharedPreferences("Settings", MODE_PRIVATE).getString("Name", "Type Your Name Here") == "Type Your Name Here") {
nameEntered = false;
} else {
nameEntered = true;
}
dialog.dismiss();
c.start();
}
});
dialog.show();
}
void showEula () {
final Dialog dialog = new Dialog(this);
dialog.setContentView(R.layout.eula);
dialog.setTitle(res.getString(R.string.eulaTitle));
dialog.setCancelable(false);
//eula objects
final Button submit = (Button) dialog.findViewById(R.id.submit);
final CheckBox agree = (CheckBox) dialog.findViewById(R.id.agree);
/*
TextView agreementStatement = (TextView) dialog.findViewById(R.id.la);
agreementStatement.setText(R.string.eula);
agree.setText(R.string.agreement);
submit.setText(R.string.submit);*/
/**/
//*
// dialog.setCancelable(false);
agree.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v){
// Button submit = (Button) findViewById(R.id.submit);
if (agree.isChecked()) {
submit.setEnabled(true);
} else {
submit.setEnabled(false);
}
}
} );
submit.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
SharedPreferences.Editor editor = getSharedPreferences("Settings", MODE_PRIVATE).edit();
editor.putBoolean("accepted",true);
editor.commit();
dialog.dismiss();
showEulaComplete = true;
//c.start();
}} );
dialog.show();
}
给出的代码块之外的变量:
protected CountDown c;
protected boolean nameEntered;
CountDown是我制作的一个扩展了CountDownTimer的类,它运行得很好。我已经多次测试过了。
Pwease帮助
答案 0 :(得分:0)
使用线程或AsyncTasks。一个接一个地打电话。或者使用任何旗帜值。