我對此很新,所以請原諒我的天真。 我已經正確搜查論壇這個問題,couldnot發現該決議,但後來可能是因爲一直沒有人一不小心犯了一個錯誤我一樣.. :)在一次通話中彈出多個對話框android
我有一個表單上的兩個按鈕我在兩個對話框中打電話。 我有一個Onprepare方法和創建方法的對話框,我正在處理通過開關和案例。
public void onClick(View arg0) {
// TODO what needs to be done on button clicks
switch (arg0.getId()) {
case R.id.bAddtrans:
case R.id.btransdate:
showDialog(1);
date.setText(strDate);
case R.id.bpaidfor:
showDialog(2);
}
我在準備並創建方法是:
@Override
protected void onPrepareDialog(int id, Dialog dialog) {
super.onPrepareDialog(id, dialog);
switch (id) {
case 1:
// Some initialization needed.
DatePickerDialog dateDlg = (DatePickerDialog) dialog;
int iDay,
iMonth,
iYear;
Calendar cal = Calendar.getInstance();
iDay = cal.get(Calendar.DAY_OF_MONTH);
iMonth = cal.get(Calendar.MONTH);
iYear = cal.get(Calendar.YEAR);
dateDlg.updateDate(iYear, iMonth, iDay);
break;
case 2:
// Static dialog hence no initialization needed
break;
}
return;
}
protected Dialog onCreateDialog(int id) {
switch (id) {
case 1:
DatePickerDialog dateDlg = new DatePickerDialog(this,
new DatePickerDialog.OnDateSetListener() {
public void onDateSet(DatePicker view, int year,
int monthOfYear, int dayOfMonth) {
Time chosenDate = new Time();
chosenDate.set(dayOfMonth, monthOfYear, year);
long dtDob = chosenDate.toMillis(true);
strDate = DateFormat.format("MMMM dd, yyyy", dtDob);
// Toast.makeText(this, "Date picked: " + strDate,
// Toast.LENGTH_SHORT).show(); }
}
}, 2011, 0, 1);
dateDlg.setMessage("Please select date..");
/*Toast toast = Toast.makeText(this, "Date picked: " + strDate,
Toast.LENGTH_SHORT);
toast.show();*/
return dateDlg;
//break;
case 2:
// TODO show multiselect dialog box
// ArrayList<String> adapterpaidfor = new ArrayList<String>(Data);
final CharSequence[] peoplelist = Data
.toArray(new CharSequence[Data.size()]);
final ArrayList<CharSequence> selectedpeople = new ArrayList<CharSequence>();
boolean[] checkedpeople = new boolean[peoplelist.length];
int count = peoplelist.length;
for (int i = 0; i < count; i++)
checkedpeople[i] = selectedpeople.contains(peoplelist[i]);
DialogInterface.OnMultiChoiceClickListener peopleDialogListener = new DialogInterface.OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialog, int which,
boolean isChecked) {
if (isChecked)
selectedpeople.add(peoplelist[which]);
else
selectedpeople.remove(peoplelist[which]);
onChangeSelectedpeople();
}
private void onChangeSelectedpeople() {
// TODO change the button name
StringBuilder stringBuilder = new StringBuilder();
for (CharSequence peoplelist : selectedpeople)
stringBuilder.append(peoplelist + ",");
paidfor.setText(stringBuilder.toString());
}
};
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Select People");
builder.setMultiChoiceItems(peoplelist, checkedpeople,
peopleDialogListener);
builder.setPositiveButton("OK", onChangeSelectedpeople());
AlertDialog dialog = builder.create();
dialog.show();
return dialog;
//break;
}
return null;
}
private android.content.DialogInterface.OnClickListener onChangeSelectedpeople() {
// TODO Auto-generated method stub
return null;
}
的問題是,當我點擊按鈕btransdate的情況下2對話框也對前端我按OK彈出按鈕的對話框,然後我可以在具有日期選擇器的背景上找到我的第二個對話框。 當我點擊按鈕bpaidfor每件事情都很好,並且datepicker對話框不被調用。
非常感謝。我知道我忽略了一些非常基本的東西。非常感謝您在這方面的時間。你們真棒。 – user1618287