在Android Studio中播放并获取值datePickerDialog
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数据库中,我已将类
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();