Android 如何使用Java中另一个类的onDateSet?
我有两个按钮。一个负责设置开始日期,另一个负责设置结束日期。当按下每一个按钮时,它们都会显示一个DatePickerDialog。onCreateDialog方法位于另一个类中。这是一节课: DatePickerFragment.JavaAndroid 如何使用Java中另一个类的onDateSet?,android,datepickerdialog,Android,Datepickerdialog,我有两个按钮。一个负责设置开始日期,另一个负责设置结束日期。当按下每一个按钮时,它们都会显示一个DatePickerDialog。onCreateDialog方法位于另一个类中。这是一节课: DatePickerFragment.Java package com.ThatOneNoob.smarthaul; import java.util.Calendar; import android.app.DatePickerDialog; import android.app.Dialog; im
package com.ThatOneNoob.smarthaul;
import java.util.Calendar;
import android.app.DatePickerDialog;
import android.app.Dialog;
import android.app.DialogFragment;
import android.os.Bundle;
import android.widget.DatePicker;
public class DatePickerFragment extends DialogFragment implements DatePickerDialog.OnDateSetListener {
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
// Use the current date as the default date in the picker
final Calendar c = Calendar.getInstance();
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH);
int day = c.get(Calendar.DAY_OF_MONTH);
// Create a new instance of DatePickerDialog and return it
return new DatePickerDialog(getActivity(), this, year, month, day);
}
@Override
public void onDateSet(DatePicker v, int year, int month, int day) {
// TODO Auto-generated method stub
switch (v.getId()){
case R.id.datesel1:
toDate.setText(new StringBuffer());
}
}
}
显然不完整,toDate是它应该管理的文本视图之一。datesel1是ImageButton。它将附加文本视图,以包含2013年2月1日格式的设置日期。我无法将TextView声明为静态,因此无法在此类中调用它。那么,我是否应该让onDateSet调用一个静态方法,将TextView设置为它需要做的事情?或者我应该怎么做?在单独的类中创建对话框,并为侦听器创建一个getter:
public class DatePickerFragment extends DialogFragment
{
private OnDateSetListener onDateSetListener;
public DatePickerFragment() {}
public void setOnDateSetListener(OnDateSetListener onDateSetListener) {
this.onDateSetListener = onDateSetListener;
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
// Use the current date as the default date in the picker
final Calendar c = Calendar.getInstance();
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH);
int day = c.get(Calendar.DAY_OF_MONTH);
// Create a new instance of DatePickerDialog and return it
return new DatePickerDialog(getActivity(), onDateSetListener, year, month, day);
}
}
DatePickerDialog.OnDateSetListener的实现将在您的活动中生成您对TextView有引用的其他片段。然后创建日历并使用,请参见:
public void onDateSet(日期选择器视图,整数年,整数月,整数月){
Calendar cal=Calendar.getInstance();
校准设置(年、月、月、日);
}
在单独的类中创建对话框,并为侦听器创建一个getter:
public class DatePickerFragment extends DialogFragment
{
private OnDateSetListener onDateSetListener;
public DatePickerFragment() {}
public void setOnDateSetListener(OnDateSetListener onDateSetListener) {
this.onDateSetListener = onDateSetListener;
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
// Use the current date as the default date in the picker
final Calendar c = Calendar.getInstance();
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH);
int day = c.get(Calendar.DAY_OF_MONTH);
// Create a new instance of DatePickerDialog and return it
return new DatePickerDialog(getActivity(), onDateSetListener, year, month, day);
}
}
DatePickerDialog.OnDateSetListener的实现将在您的活动中生成您对TextView有引用的其他片段。然后创建日历并使用,请参见:
public void onDateSet(日期选择器视图,整数年,整数月,整数月){
Calendar cal=Calendar.getInstance();
校准设置(年、月、月、日);
}
因此我将在主活动中使用onDateSet,但实际侦听器在DatePickerFragment中初始化?如何在onDateSet()中将日期值设置为5个动态生成的编辑文本视图?。我正在为每个动态生成的编辑文本设置日期选择器。因此,我将在主活动中使用onDateSet,但实际侦听器是在DatePickerFragment中初始化的?如何在onDateSet()中将日期值设置为5个动态生成的编辑文本视图?。我正在为每个动态生成的编辑文本设置日期选择器。