从 Android 上的另一个 xml 文件中的 DatePicker 获取日期
Get date from DatePicker in another xml file on Android
我想从另一个 xml 文件中的 DatePicker 获取日期(日、月、年)。但是应用程序在不使用 InflatedView 的情况下会出现 NullPointerException 错误。如果我使用 theInflatedView,则不会获取日期。我如何从另一个 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();
}
我想从另一个 xml 文件中的 DatePicker 获取日期(日、月、年)。但是应用程序在不使用 InflatedView 的情况下会出现 NullPointerException 错误。如果我使用 theInflatedView,则不会获取日期。我如何从另一个 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();
}