在Android Studio中播放并获取值datePickerDialog

在Android Studio中播放并获取值datePickerDialog,android,Android,datePickerDialog是否可以像EditText那样强制转换?我可以这样声明EditText final EditText etName = (EditText) this.findViewById(R.id.etName); 我们可以把它扔进 String name = etName.getText().toString(); datePickerDialog呢 我已经创建了RegisterRequest.java来放置值。我不知道该放什么类型,因为在mysql数据库中,我已将类

datePickerDialog是否可以像
EditText
那样强制转换?我可以这样声明
EditText

final EditText etName = (EditText) this.findViewById(R.id.etName);
我们可以把它扔进

String name = etName.getText().toString();
datePickerDialog呢

我已经创建了RegisterRequest.java来放置值。我不知道该放什么类型,因为在mysql数据库中,我已将类型设置为datetime

public class RegisterRequest extends StringRequest{

    private static final String REGISTER_REQUEST_URL = "http://localhost/takonami/Register.php";
    private Map<String, String> params;

    public RegisterRequest(Date datetime, Response.Listener<String> listener){
        super(Method.POST, REGISTER_REQUEST_URL, listener, null);
        params = new HashMap<>();
        params.put("datetime", "" +datetime);
    }
    @Override
    public Map<String, String> getParams() {
        return params;
    }
}
但是我不知道如何在bRegister侦听器中强制转换etDate,因为类型不是String、double、float或int。它是datetime格式。我做错了吗

bRegister = (Button)findViewById(R.id.bRegister);
        bRegister.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                    datePicker = (DatePicker)findViewById(R.id.etDate);
                    Integer dobYear = datePicker.getYear();
                    Integer dobMonth = datePicker.getMonth();
                    Integer dobDate = datePicker.getDayOfMonth();
                    StringBuilder sb=new StringBuilder();
                    sb.append(dobYear.toString()).append("-").append(dobMonth.toString()).append("-").append(dobDate.toString()).append(" 00:00:00");
                    String dobStr=sb.toString();

                    Response.Listener<String> responseListener = new Response.Listener<String>() {
                        @Override
                        public void onResponse(String response) {
                            try {
                                JSONObject jsonObject = new JSONObject(response);
                                Boolean success = jsonObject.getBoolean("success");
                                if (success) {
                                    Toast.makeText(RegisterActivity.this, "Register success", Toast.LENGTH_SHORT).show();
                                } else {
                                    Toast.makeText(RegisterActivity.this, "failed success", Toast.LENGTH_SHORT).show();
                                }
                            } catch (JSONException e) {
                                e.printStackTrace();
                            }
                        }
                    };
                    RegisterRequest registerRequest = new RegisterRequest(datePicker, responseListener);
                    RequestQueue requestQueue = Volley.newRequestQueue(RegisterActivity.this);
                    requestQueue.add(registerRequest);
                }else {
                    Toast.makeText(RegisterActivity.this, "Required fields asterisk", Toast.LENGTH_SHORT).show();
                }
            }
        });
bRegister=(按钮)findviewbyd(R.id.bRegister);
bRegister.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
datePicker=(datePicker)findViewById(R.id.etDate);
整数dobYear=datePicker.getYear();
整数dobMonth=datePicker.getMonth();
整数dobDate=datePicker.getDayOfMonth();
StringBuilder sb=新的StringBuilder();
sb.append(dobyar.toString()).append(“-”).append(dobMonth.toString()).append(“-”).append(dobDate.toString()).append(“00:00:00”);
字符串dobStr=sb.toString();
Response.Listener responseListener=新的Response.Listener(){
@凌驾
公共void onResponse(字符串响应){
试一试{
JSONObject JSONObject=新JSONObject(响应);
Boolean success=jsonObject.getBoolean(“success”);
如果(成功){
Toast.makeText(RegisterActivity.this,“注册成功”,Toast.LENGTH_SHORT.show();
}否则{
Toast.makeText(RegisterActivity.this,“失败的成功”,Toast.LENGTH_SHORT.show();
}
}捕获(JSONException e){
e、 printStackTrace();
}
}
};
RegisterRequest RegisterRequest=新的RegisterRequest(日期选择器、响应侦听器);
RequestQueue RequestQueue=Volley.newRequestQueue(RegisterActivity.this);
添加(registerRequest);
}否则{
Toast.makeText(RegisterActivity.this,“必填字段星号”,Toast.LENGTH_SHORT.show();
}
}
});
顺便说一句,这是我的Register.php文件

<?php
    $connect = mysqli_connect("localhost", "root", "root", "takonami");

    $datetime     = $_POST['datetime'];

        global $connect, $datetime ;
        $statement = mysqli_prepare($connect, "INSERT INTO user (datetime) VALUES (?)");
        mysqli_stmt_bind_param($statement, "i", $datetime);
        mysqli_stmt_execute($statement);
        mysqli_stmt_close($statement);     

    $response = array();


    echo json_encode($response);
?>

//在按钮上单击事件调用此方法

    private void datePicker(){
                    Calendar calendar = Calendar.getInstance();
                    final  SimpleDateFormat dateFormatter = new SimpleDateFormat("yyyy-MM-dd", Locale.US);
                    DatePickerDialog datePickerDialog = new DatePickerDialog(activity, new DatePickerDialog.OnDateSetListener() {

                    public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
                        Calendar newDate = Calendar.getInstance();
                        newDate.set(year, monthOfYear, dayOfMonth);
                        // here code for store value in DB
                  String datTymValue = dateFormatter.format(newDate.getTime());
                    }

                }, calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH));
                datePickerDialog.show();
        }

将所有答案组合起来,并将其制作成代码片段

在类的顶部导入日期选择器:

import android.widget.DatePicker;
Inside your class declare the following variable:

private DatePicker dobPicker;
And here is the code to be done in button click event:

 dobPicker = (DatePicker)findViewById(R.id.dobPicker);
        Integer dobYear = dobPicker.getYear();
        Integer dobMonth = dobPicker.getMonth();
        Integer dobDate = dobPicker.getDayOfMonth();
        StringBuilder sb=new StringBuilder();
        sb.append(dobYear.toString()).append("-").append(dobMonth.toString()).append("-").append(dobDate.toString()).append(" 00:00:00");
        String dobStr=sb.toString();

其中,在R.id.dobPicker中,dobPicker是布局xml文件中的日期选择器。这将在末尾提供一个字符串,可以存储或发送到服务器。

您能检查我上面的编码吗?我一直坚持在bRegister.onSetListener中声明和铸造它。因为数据库中的datetime类型是datetime格式。谢谢。你能检查一下我上面的代码看看有什么问题吗?我之前已经编辑了我的问题。谢谢。应用程序停止工作。RegisterActivity.java上的错误肯定是因为我不知道如何强制转换datePicker的值。如果editText字符串没有问题。我已将stmt_bind_参数更改为“s”。还是不起作用。我已在构造函数中将datetime的类型更改为String。同样的错误。当我按下注册表按钮时,应用程序崩溃。datepicker没有问题。这个代码很好。b顺便说一下。什么是注册表请求?我正在使用截击。基本上,我使用StringRequest添加值。所以我把文件分开。RegisterRequest包含构造函数。我在bRegister按钮侦听器中调用RegisterRequest。是 啊当我选择日期时,代码运行良好。但它无法存储到数据库中。需要在bRegister listener中添加datepicker的值。
import android.widget.DatePicker;
Inside your class declare the following variable:

private DatePicker dobPicker;
And here is the code to be done in button click event:

 dobPicker = (DatePicker)findViewById(R.id.dobPicker);
        Integer dobYear = dobPicker.getYear();
        Integer dobMonth = dobPicker.getMonth();
        Integer dobDate = dobPicker.getDayOfMonth();
        StringBuilder sb=new StringBuilder();
        sb.append(dobYear.toString()).append("-").append(dobMonth.toString()).append("-").append(dobDate.toString()).append(" 00:00:00");
        String dobStr=sb.toString();