我想从另一个 xml 文件中的 DatePicker 获取日期(日、月、年)。但应用程序在不使用 InflatedView 的情况下会出现 NullPointerException 错误。如果我使用 InflatedView,则不会获取日期。如何从另一个 xml 文件中的 DatePicker 获取日期?
public void customAlertDialog(){
final Dialog dialog = new Dialog(HesapActivity.this);
dialog.setContentView(R.layout.dateset);
dialog.setTitle("Date");
theInflatedView = getLayoutInflater().inflate(R.layout.dateset, null);
final DatePicker dpFirst = (DatePicker) theInflatedView.findViewById(R.id.datePicker1);
final str;
dpFirst.init(dpFirst.getYear(), dpFirst.getMonth(), dpFirst.getDayOfMonth(),new OnDateChangedListener() {
@Override
public void onDateChanged(DatePicker arg0, int arg1, int arg2, int arg3) {
str=(arg3+ "."+ (arg2+1) + "."+arg1);
}
} );
Button dialogButton = (Button) dialog.findViewById(R.id.setDPBt);
dialogButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
textFirst.setText(str);//textFirst is MainActivity variable.
dialog.dismiss();
}
});
dialog.show();
}
在onCreate()中
customAlertDialog();
单击 AlertDialog 中的按钮时不要设置文本日期
------更新--------
我解决了下面的问题
final DatePicker dpFirst = (DatePicker) dialog.findViewById(R.id.datePicker1);//I changed theInflatedView to dialog
最佳答案
更改如下:
public void customAlertDialog(){
final Dialog dialog = new Dialog(HesapActivity.this);
dialog.setContentView(R.layout.dateset);
dialog.setTitle("Date");
theInflatedView = getLayoutInflater().inflate(R.layout.dateset, null);
final DatePicker dpFirst = (DatePicker) theInflatedView.findViewById(R.id.datePicker1);
final str;
dpFirst.init(dpFirst.getYear(), dpFirst.getMonth(), dpFirst.getDayOfMonth(),new OnDateChangedListener() {
@Override
public void onDateChanged(DatePicker arg0, int arg1, int arg2, int arg3) {
str=(arg3+ "."+ (arg2+1) + "."+arg1);
}
} );
Button dialogButton = (Button) dialog.findViewById(R.id.setDPBt);
dialogButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
textFirst.setText(str);//textFirst is MainActivity variable.
dialog.dismiss();
}
});
dialog.show();
}
至
public void customAlertDialog(){
final Dialog dialog = new Dialog(HesapActivity.this);
dialog.setContentView(R.layout.dateset);
dialog.setTitle("Date");
theInflatedView = getLayoutInflater().inflate(R.layout.dateset, null);
final DatePicker dpFirst = (DatePicker) theInflatedView.findViewById(R.id.datePicker1);
final str;
dpFirst.init(dpFirst.getYear(), dpFirst.getMonth(), dpFirst.getDayOfMonth(),new OnDateChangedListener() {
@Override
public void onDateChanged(DatePicker arg0, int arg1, int arg2, int arg3) {
textFirst.setText(arg3+ "."+ (arg2+1) + "."+arg1);
}
} );
Button dialogButton = (Button) dialog.findViewById(R.id.setDPBt);
dialogButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
dialog.dismiss();
}
});
dialog.show();
}
关于java - 在 Android 上从另一个 xml 文件中的 DatePicker 获取日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28261373/