从Android获取DatePicker值以存储到php-mysql中


Getting DatePicker value to store into php mysql from Android

大家好!

我目前正在研究如何使用android的日期选择器将日期值放入我的php-mysql中。我的计划是从日期选择器中获取数据,不管它的值是多少,它都将被放入mysql中。出于某种原因,没有任何错误,但每次我将值"0000-00-00"放入数据库时,它都会将其输入到mysql中。以下是我的java android代码。

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.add_datetime);
    //setup strict mode policy
    StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
    StrictMode.setThreadPolicy(policy);
    timePicker = (TimePicker) findViewById(R.id.timePicker);
    timePicker.setIs24HourView(true);
    datePicker = (DatePicker) findViewById(R.id.datePicker);
    //lblTime = (TextView) findViewById(R.id.lblTime);
    btnAddTime = (Button) findViewById(R.id.btnAddTime);
    btnAddTime.setOnClickListener(new View.OnClickListener() {
        InputStream is = null;
        @Override
        public void onClick(View v) {
            //String time = lblTime.getText().toString();
            //String time = timePicker.getCurrentHour() + ":" + timePicker.getCurrentMinute() + ":" + "00";
            String date = datePicker.getYear() + "-" + datePicker.getMonth() + 1 + "-" + datePicker.getDayOfMonth();

            List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(1);
            nameValuePairs.add(new BasicNameValuePair ("date", date));
            try {
                //setting up the default http client
                HttpClient httpClient = new DefaultHttpClient();
                //setting up the http post method and passing the url in case
                //of online database and the ip address in case of localhost database
                //and the php file which serves as a link between the android app
                //and the database.
                HttpPost httpPost = new HttpPost("http://10.0.2.2/add_time.php");
                //passing the nameValuePairs inside the httppost
                httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
                //getting the response
                HttpResponse response = httpClient.execute(httpPost);
                //setting up the entity
                HttpEntity httpEntity = response.getEntity();
                //setting up the content inside an input stream reader
                //lets define the input stream reader
                is = httpEntity.getContent();
                //Toast message if the data is successfully entered
                Toast.makeText(getApplicationContext(), "Date entered succesfully", Toast.LENGTH_LONG).show();
            }
            catch (ClientProtocolException e) {
                Log.e("ClientProtocol", "Log_tag");
                e.printStackTrace();
            }
            catch (IOException e) {
                Log.e("Log tag", "IOException");
                e.printStackTrace();
            }
        }
    });

以下是我的php代码:

<?php
error_reporting(E_ALL ^ E_DEPRECATED);
$con = mysql_connect('localhost', 'root', '');
mysql_select_db('testdb', $con);
$date = $_POST['date'];
mysql_query("Insert into datetable (date) values('{$date}')");

?>

如果有人能帮我,我将不胜感激。谢谢!

首先您没有调用

 datePicker.init(year, month, day, dateSetListener);

第二,您尚未实现OnDateChangedListener

  private DatePicker.OnDateChangedListener dateSetListener = new DatePicker.OnDateChangedListener() {
        public void onDateChanged(DatePicker view, int year, int monthOfYear,
                int dayOfMonth) {
// Use these values to pass....
        }
    };

步骤1:

首先,您将需要日期字段表中的数据类型为varchar(10)

步骤2:

 int month = f_date.getMonth();
 int crrntmonth = month + 1 ;
String date = f_date.getYear() + "-" + crrntmonth + "-" + f_date.getDayOfMonth();