Android控件:WebVIew(三)日历选择器

时间:2022-02-04 00:02:55

Android本身就有DatePicker和TimePicker控件的代码如下

Android控件:WebVIew(三)日历选择器
 1import java.util.Calendar;
2import org.json.JSONException;
3import org.json.JSONObject;
4import android.app.Activity;
5import android.app.DatePickerDialog;
6import android.app.DatePickerDialog.OnDateSetListener;
7import android.os.Bundle;
8import android.os.Handler;
9import android.webkit.WebView;
10import android.widget.DatePicker;
1112publicclass MyWebViewTestActivity extends Activity {
13public WebView webView;
1415// Handler handler;1617 @Override
18publicvoid onCreate(Bundle savedInstanceState) {
19super.onCreate(savedInstanceState);
20 setContentView(R.layout.main);
2122 webView = (WebView) findViewById(R.id.myWebView);
28 webView.getSettings().setJavaScriptEnabled(true);
29 webView.addJavascriptInterface(new ProxyBridge(), "ProxyBridge");
30 webView.loadUrl("file:///android_asset/index.html");
31 }
3233class ProxyBridge {
34 String date;
35 String json_date;
36 DatePickerDialog pickerDialog;
37 Handler handler = new Handler();
38publicvoid getDateTime() {
39 handler.post(new Runnable() {
40 @Override
41publicvoid run() {
42final Calendar cd = Calendar.getInstance();
43 pickerDialog = new DatePickerDialog(
44 MyWebViewTestActivity.this,
45new OnDateSetListener() {
4647 @Override
48publicvoid onDateSet(DatePicker view,
49int year, int monthOfYear,
50int dayOfMonth) {
51try {
52 date = String.valueOf(year) + "-"
53 + String.valueOf(monthOfYear)
54 + "-"
55 + String.valueOf(dayOfMonth);
56 JSONObject map = new JSONObject();
57 map.put("date", date);
58// json_date = "[{\"time\":\"2012-02-18\"}]";59 json_date = map.toString();
60 } catch (JSONException e) {
61 e.printStackTrace();
62 }
63 webView.loadUrl("javascript:setDateTime("
64 + json_date + ")");
65 }
66 }, cd.get(Calendar.YEAR), cd.get(Calendar.MONTH),
67 cd.get(Calendar.DAY_OF_MONTH));
68 pickerDialog.show();
69 }
70 });
71 };
73 }
74 }
Android控件:WebVIew(三)日历选择器

以下是HTML的测试代码

<html><head><title>日期选择测试</title><script language="javascript"            function setDateTime(JSONdate){        var jsonobjs = eval(JSONdate);        var date=jsonobjs.date;        document.getElementById("datetext").value=date;    }         </script> </head><body>    <form>        <input type="text" id="datetext"            onclick="window.ProxyBridge.getDateTime();" value="" />    </form></body></html>

ssAndroid控件:WebVIew(三)日历选择器