我们可以在 onCreateDialog 中使用不同的整数在单个应用程序中一起打印时间选择器和日期吗?
Can we print Time Picker and Date together in single app using differrent integer in onCreateDialog?
包 com.example.timepickerdialog;
进口androidx.appcompat.app.AppCompatActivity;
进口android.app.DatePickerDialog;
进口android.app.Dialog;
进口android.app.TimePickerDialog;
进口android.os.Bundle;
进口android.view.View;
进口android.widget.Button;
进口android.widget.DatePicker;
进口android.widget.TimePicker;
进口android.widget.Toast;
public class MainActivity extends AppCompatActivity {
Button button, button2;
static final int DIALOG_ID = 0, SECONDDIALOGID = 0;
int ApnaHour;
int ApnaMinute, ApnaYear, ApanaDay, ApnaMonth;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
DialogListener();
}
public void DialogListener() {
button = (Button) findViewById(R.id.button);
button2 = (Button) findViewById(R.id.button2);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showDialog(DIALOG_ID);
}
});
button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showDialog(SECONDDIALOGID);
}
});
}
下面这个重写显示错误中的问题。如果我删除 int hh,则错误会显示在 DateDialogPicker 中。
请告诉我这段代码是否错误。
@Override
protected Dialog onCreateDialog(int id , int hh) {
if (id == DIALOG_ID)
return new TimePickerDialog(MainActivity.this, SaadaTimePickerListener, ApnaHour, ApnaMinute, false);
return null;
if (hh== SECONDDIALOGID)
return new DatePickerDialog(this, DateSaadaPickerListener,ApanaDay, ApnaMonth, ApnaYear);
return null;}
请解决上面的覆盖错误。
protected TimePickerDialog.OnTimeSetListener SaadaTimePickerListener = new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
ApnaHour = hourOfDay;
ApnaMinute = minute;
Toast.makeText(MainActivity.this, ApnaHour + ":" + ApnaMinute, Toast.LENGTH_SHORT).show();
}
};
private DatePickerDialog.OnDateSetListener DateSaadaPickerListener = new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
ApnaMonth = month;
ApnaYear = year;
ApanaDay = dayOfMonth;
Toast.makeText(MainActivity.this, ApanaDay + "/" + ApnaMonth + "/" + ApnaYear, Toast.LENGTH_SHORT).show();
}
};
}
showDialog 现已弃用。我已经用当前时间和日期编写了 DatePicker 和 TimePicker 的代码。欢迎修改。
public void showDatePickerDialog(View v) {
// Get Current Date or use your own Date
final Calendar c = Calendar.getInstance();
int mYear = c.get(Calendar.YEAR);
int mMonth = c.get(Calendar.MONTH);
int mDay = c.get(Calendar.DAY_OF_MONTH);
DatePickerDialog datePickerDialog = new DatePickerDialog(this,
new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year,
int monthOfYear, int dayOfMonth) {
//get date here
}
}, mYear, mMonth, mDay);
datePickerDialog.show();
}
public void showTimePickerDialog(View v) {
// Get Current Time or use your own Time
final Calendar c = Calendar.getInstance();
int mHour = c.get(Calendar.HOUR_OF_DAY);
int mMinute = c.get(Calendar.MINUTE);
// Launch Time Picker Dialog
TimePickerDialog timePickerDialog = new TimePickerDialog(this,
new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view, int hourOfDay,
int minute) {
//get time here
}
}, mHour, mMinute, false);
timePickerDialog.show();
}
包 com.example.timepickerdialog;
进口androidx.appcompat.app.AppCompatActivity;
进口android.app.DatePickerDialog;
进口android.app.Dialog;
进口android.app.TimePickerDialog;
进口android.os.Bundle;
进口android.view.View;
进口android.widget.Button;
进口android.widget.DatePicker;
进口android.widget.TimePicker;
进口android.widget.Toast;
public class MainActivity extends AppCompatActivity {
Button button, button2;
static final int DIALOG_ID = 0, SECONDDIALOGID = 0;
int ApnaHour;
int ApnaMinute, ApnaYear, ApanaDay, ApnaMonth;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
DialogListener();
}
public void DialogListener() {
button = (Button) findViewById(R.id.button);
button2 = (Button) findViewById(R.id.button2);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showDialog(DIALOG_ID);
}
});
button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showDialog(SECONDDIALOGID);
}
});
}
下面这个重写显示错误中的问题。如果我删除 int hh,则错误会显示在 DateDialogPicker 中。 请告诉我这段代码是否错误。
@Override
protected Dialog onCreateDialog(int id , int hh) {
if (id == DIALOG_ID)
return new TimePickerDialog(MainActivity.this, SaadaTimePickerListener, ApnaHour, ApnaMinute, false);
return null;
if (hh== SECONDDIALOGID)
return new DatePickerDialog(this, DateSaadaPickerListener,ApanaDay, ApnaMonth, ApnaYear);
return null;}
请解决上面的覆盖错误。
protected TimePickerDialog.OnTimeSetListener SaadaTimePickerListener = new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
ApnaHour = hourOfDay;
ApnaMinute = minute;
Toast.makeText(MainActivity.this, ApnaHour + ":" + ApnaMinute, Toast.LENGTH_SHORT).show();
}
};
private DatePickerDialog.OnDateSetListener DateSaadaPickerListener = new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
ApnaMonth = month;
ApnaYear = year;
ApanaDay = dayOfMonth;
Toast.makeText(MainActivity.this, ApanaDay + "/" + ApnaMonth + "/" + ApnaYear, Toast.LENGTH_SHORT).show();
}
};
}
showDialog 现已弃用。我已经用当前时间和日期编写了 DatePicker 和 TimePicker 的代码。欢迎修改。
public void showDatePickerDialog(View v) {
// Get Current Date or use your own Date
final Calendar c = Calendar.getInstance();
int mYear = c.get(Calendar.YEAR);
int mMonth = c.get(Calendar.MONTH);
int mDay = c.get(Calendar.DAY_OF_MONTH);
DatePickerDialog datePickerDialog = new DatePickerDialog(this,
new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year,
int monthOfYear, int dayOfMonth) {
//get date here
}
}, mYear, mMonth, mDay);
datePickerDialog.show();
}
public void showTimePickerDialog(View v) {
// Get Current Time or use your own Time
final Calendar c = Calendar.getInstance();
int mHour = c.get(Calendar.HOUR_OF_DAY);
int mMinute = c.get(Calendar.MINUTE);
// Launch Time Picker Dialog
TimePickerDialog timePickerDialog = new TimePickerDialog(this,
new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view, int hourOfDay,
int minute) {
//get time here
}
}, mHour, mMinute, false);
timePickerDialog.show();
}