Android DialogFragment 回传数据

来源:互联网 发布:mac svn 上传文件 编辑:程序博客网 时间:2024/06/05 16:10

采用自定义接口的方式回传数据


一、软件截图:






二、代码:

1、定义DatePickerFragment,自定义的接口OnDateInputListener

public class DatePickerFragment extends DialogFragment implements DatePickerDialog.OnDateSetListener {    public OnDateInputListener onDateInputListener;    public interface OnDateInputListener {        void getDate(int year, int month, int day);    }    public void setOnDateInputListener(OnDateInputListener onDateInputListener) {        this.onDateInputListener = onDateInputListener;    }    @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);    }    public void onDateSet(DatePicker view, int year, int month, int day) {        // Do something with the date chosen by the user        onDateInputListener.getDate(year, month + 1, day);    }}

2、采用lambda表达式实现接口

public class MainActivity extends AppCompatActivity {    private TextView textViewData;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        textViewData= (TextView) findViewById(R.id.tv_date);    }    public void showDatePickerDialog(View v) {        DatePickerFragment newFragment = new DatePickerFragment();        newFragment.show(getSupportFragmentManager(), "datePicker");        newFragment.setOnDateInputListener((int year, int month, int day) -> textViewData.setText(year + "年 " + month + "月 " + day + "日"));    }}


0 0
原创粉丝点击