Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/210.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何使用Java中另一个类的onDateSet?_Android_Datepickerdialog - Fatal编程技术网

Android 如何使用Java中另一个类的onDateSet?

Android 如何使用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

我有两个按钮。一个负责设置开始日期,另一个负责设置结束日期。当按下每一个按钮时,它们都会显示一个DatePickerDialog。onCreateDialog方法位于另一个类中。这是一节课:

DatePickerFragment.Java

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个动态生成的编辑文本视图?。我正在为每个动态生成的编辑文本设置日期选择器。