您的位置:首页 > 移动开发

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

2015-10-20 10:48 579 查看
Android本身就有DatePicker和TimePicker控件的代码如下





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();
43pickerDialog = 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));
68pickerDialog.show();
69   }
70  });
71  };
73 }
74 }




以下是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>


ss


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: