首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

各种dialog,alertdialog,AlertDialog.Builder(this)的小结,并封住成javaScript调用

2012-09-28 
各种dialog,alertdialog,AlertDialog.Builder(this)的总结,并封住成javaScript调用package com.emn.emf.an

各种dialog,alertdialog,AlertDialog.Builder(this)的总结,并封住成javaScript调用

package com.emn.emf.android.basecommands.loading;import org.json.JSONException;import org.json.JSONObject;import android.app.AlertDialog;import android.app.Dialog;import android.app.ProgressDialog;import android.content.Context;import android.content.DialogInterface;import android.os.Bundle;import android.os.Handler;import android.view.View;import android.widget.Button;import android.widget.ImageView;import android.widget.TextView;import com.emn.emf.android.AndroidBaseActivity;import com.emn.emf.android.CommandObject;import com.emn.emf.android.R;public class Loading extends AndroidBaseActivity implements CommandObject {private ProgressDialog myDialog2 = null;private ProgressDialog myDialogTime = null;private long time = 0,time2 = 0,time3 = 0;private CustomDialog cd;private Dialog cd2;public  AlertDialog alertDialog;private String showCenterTipTitle = "",showCenterTipTitle2 = "",showCenterTipTitle3 = "",showCenterTipTitle4 = "";private String showCenterTipTime = "",showCenterTipTime2 = "",showCenterCallback3 = null,showCenterTipContent3 = "";private String showCenterTipContent = "",showCenterTipContent2 = "",showCenterTipTimeTitle = "";;private String showCenterCallback4 = null,showCenterTipContent4 = "";private String showCenterTipTimeTime = "",showCenterTipTiemContent = "",showCenterCallback = "";private Handler mHandler = new Handler();@Overridepublic Boolean checkValidation(String checkCommand, Object parameters) {// TODO Auto-generated method stubreturn Boolean.TRUE;}/* * (non-Javadoc) * @see com.emn.emf.android.CommandObject#handleIt(java.lang.String, java.lang.Object) */@Overridepublic Object handleIt(String checkCommand, Object parameters) {String jsonstartLoad = "";if (checkCommand.equals("startLoad")) {jsonstartLoad = getStartLoad(parameters);} else if (checkCommand.equals("finishLoad")) {jsonstartLoad = getFinishLoading();} else if (checkCommand.equals("showCenterTipMyTwoButton")) {jsonstartLoad = getshowCenterTipMyTwoButton(parameters);} else if (checkCommand.equals("showCenterTipMyTime")) {jsonstartLoad = getshowCenterTipMyTime(parameters);} else if (checkCommand.equals("showCenterTipButtonTwo")) {jsonstartLoad = getshowCenterTipButtonTwo(parameters);} else if (checkCommand.equals("showCenterTipButtonOne")) {jsonstartLoad = getshowCenterTipBttonOne(parameters);}else if (checkCommand.equals("showCenterTipTimeSystem")) {jsonstartLoad = getshowCenterTipTimeSystem(parameters);}return jsonstartLoad;}/* *  启动对话框,带有系统默认旋转图片,可以自定义标题,和内容提示部分。 */private String getStartLoad(Object parameters) {String loadingTitle = "";String loadingContent = "";String strJSONParam = parameters.toString();JSONObject jsonObject;try {jsonObject = new JSONObject(strJSONParam);loadingTitle = jsonObject.getString("title");loadingContent = jsonObject.getString("content");} catch (JSONException e1) {e1.printStackTrace();}CharSequence strDialogTitle = (CharSequence) loadingTitle;CharSequence strDialogBody = (CharSequence) loadingContent;// 显示Progress对话框myDialog2 = ProgressDialog.show(AndroidBaseActivity.self,strDialogTitle, strDialogBody, true);return "{states:success}";}    /*     * 加载Loading效果,你可以自定义指定标题,内容。但没有自动取消。     * 如果需要取消需要调用JS方法finishLoading()进行取消。     */private String getshowCenterTipTimeSystem(Object parameters) {String strJSONParam = parameters.toString();JSONObject jsonObject;try {jsonObject = new JSONObject(strJSONParam);showCenterTipTimeTitle = jsonObject.getString("title");showCenterTipTimeTime = jsonObject.getString("time");showCenterTipTiemContent = jsonObject.getString("content");time2 = Long.parseLong(showCenterTipTimeTime);} catch (JSONException e1) {// TODO Auto-generated catch blocke1.printStackTrace();}CharSequence strDialogTitle = (CharSequence) showCenterTipTimeTitle;CharSequence strDialogBody = (CharSequence) showCenterTipTiemContent;// 显示Progress对话框myDialogTime = ProgressDialog.show(AndroidBaseActivity.self,strDialogTitle, strDialogBody, true);new Thread() {public void run() {try {sleep(time2);} catch (Exception e) {e.printStackTrace();} finally { // 卸载所创建的myDialog对象。myDialogTime.dismiss();}}}.start(); // 开始运行运行线程return "{states:success}";}/* *  取消Loading效果,和getshowCenterTipTime(Object parameters)配对使用。 */private String getFinishLoading() {if(myDialog2 == null) {return "{states:success}";}myDialog2.dismiss();return "{states:success}";}/* * 自定义dialog,按确定,可以指定执行JS方法,可以指定标题,内容。 * 暂时不支持指定时间,需要的话可以随时添加; */private String getshowCenterTipMyTwoButton(Object parameters) {String strJSONParam = parameters.toString();JSONObject jsonObject;try {jsonObject = new JSONObject(strJSONParam);showCenterTipTitle = jsonObject.getString("title");showCenterTipTime = jsonObject.getString("time");showCenterTipContent = jsonObject.getString("content");showCenterCallback = jsonObject.getString("callback");time = Long.parseLong(showCenterTipTime);} catch (JSONException e1) {// TODO Auto-generated catch blocke1.printStackTrace();}cd = new CustomDialog(AndroidBaseActivity.self);cd.show();return "{states:success}";}/* *  自定义对话框 */class CustomDialog extends Dialog {public CustomDialog(Context context) {super(context);}protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.custom_dialog);setTitle(showCenterTipTitle);TextView text = (TextView) findViewById(R.id.text);text.setText(showCenterTipContent);ImageView image = (ImageView) findViewById(R.id.image);image.setImageResource(R.drawable.icon);Button buttonYes = (Button) findViewById(R.id.button_yes);buttonYes.setHeight(5);buttonYes.setOnClickListener(new Button.OnClickListener() {public void onClick(View v) {dismiss();mHandler.post(new Runnable() {public void run() {getWebView().loadUrl("javascript:" + showCenterCallback);}});}});Button buttonNo = (Button) findViewById(R.id.button_no);buttonNo.setSingleLine(true);buttonNo.setOnClickListener(new Button.OnClickListener() {public void onClick(View v) {dismiss();}});}}/* * 自定义dialog,可以指定执行时间长度,标题,内容部分支持最大48*48像素PNG图片。 *  */private String getshowCenterTipMyTime(Object parameters) {String strJSONParam = parameters.toString();JSONObject jsonObject;try {jsonObject = new JSONObject(strJSONParam);showCenterTipTitle2 = jsonObject.getString("title");showCenterTipTime2 = jsonObject.getString("time");showCenterTipContent2 = jsonObject.getString("content");// showCenterCallback = jsonObject.getString("callback");time3 = Long.parseLong(showCenterTipTime2);} catch (JSONException e1) {// TODO Auto-generated catch blocke1.printStackTrace();}cd2 = new CustomDialog2(AndroidBaseActivity.self);cd2.setContentView(R.layout.custom_dialog2);cd2.setTitle(showCenterTipTitle2);cd2.show();new Thread() {public void run() {try {sleep(time3);} catch (Exception e) {e.printStackTrace();} finally { // 卸载所创建的myDialog对象。cd2.dismiss();}}}.start(); // 开始运行运行线程return "{states:success}";}class CustomDialog2 extends Dialog {public CustomDialog2(Context context) {super(context);}protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.custom_dialog2);TextView text = (TextView) findViewById(R.id.text);    text.setText(showCenterTipContent2);ImageView image = (ImageView) findViewById(R.id.image);image.setImageResource(R.drawable.icon);}}/* * 系统dialog的封装,可以指定执行时间,标题,内容。 * 有确定按钮,和取消按钮,点击确定时执行一个JS方法,取消不执行。 *  */private String getshowCenterTipButtonTwo(Object parameters) {String strJSONParam = parameters.toString();JSONObject jsonObject;try {jsonObject = new JSONObject(strJSONParam);showCenterTipTitle3 = jsonObject.getString("title");//showCenterTipTime3 = jsonObject.getString("time");showCenterTipContent3 = jsonObject.getString("content");showCenterCallback3 = jsonObject.getString("callback");//time4 = Long.parseLong(showCenterTipTime3);} catch (JSONException e1) {// TODO Auto-generated catch blocke1.printStackTrace();}new AlertDialog.Builder(AndroidBaseActivity.self)    .setTitle(showCenterTipTitle3)//.setView(view)    .setMessage(showCenterTipContent3)    .setPositiveButton("确定",        new DialogInterface.OnClickListener(){            public void onClick(                DialogInterface dialoginterface, int i){            getWebView().loadUrl("javascript:" + showCenterCallback3);                                }            })    .setNegativeButton("取消",        new DialogInterface.OnClickListener(){            public void onClick(                DialogInterface dialoginterface, int i){                }            })    .show();return "{states:success}";}/* * 系统dialog的封装,可以指定执行时间,标题,内容。 * 只有确定按钮,,点击确定时执行一个JS方法。 *  */private String getshowCenterTipBttonOne(Object parameters) {String strJSONParam = parameters.toString();JSONObject jsonObject;try {jsonObject = new JSONObject(strJSONParam);showCenterTipTitle4 = jsonObject.getString("title");//showCenterTipTime3 = jsonObject.getString("time");showCenterTipContent4 = jsonObject.getString("content"); showCenterCallback4 = jsonObject.getString("callback");//time4 = Long.parseLong(showCenterTipTime3);} catch (JSONException e1) {// TODO Auto-generated catch blocke1.printStackTrace();}new AlertDialog.Builder(AndroidBaseActivity.self)    .setTitle(showCenterTipTitle4)//.setView(view)    .setMessage(showCenterTipContent4)    .setPositiveButton("确定",        new DialogInterface.OnClickListener(){            public void onClick(                DialogInterface dialoginterface, int i){                        getWebView().loadUrl("javascript:" + showCenterCallback4);                }            })        .show();return "{states:success}";}}

?

2.custom_dialog.xml的代码

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"              android:id="@+id/layout_root"              android:orientation="vertical"              android:layout_width="fill_parent"              android:layout_height="fill_parent"               android:background="@drawable/bg3"              android:padding="10dp"              >      <LinearLayout         android:orientation="horizontal"        android:layout_width="fill_parent"         android:layout_height="wrap_content"        android:padding="2px"         >                <ImageView android:id="@+id/image"               android:layout_width="wrap_content"               android:layout_height="wrap_content"               android:layout_marginRight="2dp"               />    <TextView android:id="@+id/text"              android:layout_width="wrap_content"              android:layout_height="wrap_content"              android:textColor="#FFF"              android:paddingTop="12dp"                           />                    </LinearLayout>            <LinearLayout         android:orientation="horizontal"        android:layout_width="fill_parent"         android:layout_height="wrap_content"        android:gravity="center_horizontal"        android:padding="5px"   >          <Button              android:id="@+id/button_yes"              android:layout_width="wrap_content"              android:layout_height="wrap_content"              android:text="      确定      "              />          <Button               android:id="@+id/button_no"              android:layout_width="wrap_content"              android:layout_height="wrap_content"              android:text="      取消       "              />    </LinearLayout>    </LinearLayout>

?

?

3.custom_dialog2.xml的代码

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"                           android:orientation="horizontal"              android:layout_width="fill_parent"              android:layout_height="fill_parent"              android:padding="10dp"              android:background="@drawable/bg3"              >                                  <LinearLayout         android:orientation="horizontal"        android:layout_width="fill_parent"         android:layout_height="wrap_content"        android:layout_weight="2"                android:padding="2px"         >                <ImageView android:id="@+id/image"               android:layout_width="wrap_content"               android:layout_height="wrap_content"               android:layout_marginRight="2dp"               />    <TextView android:id="@+id/text"              android:layout_width="wrap_content"              android:layout_height="wrap_content"              android:paddingTop="18px"              android:gravity="center_horizontal"                                        />                    </LinearLayout>                </LinearLayout>

?4.main.js代码

//加载效果,你可以自定义指定标题,内容。但没有自动取消。如果需要取消需要调用JS方法finishLoading()function getStartLoading(){return emf.makeCall('startLoading.startLoad', "{title:'联系人',content:'请您稍等正在加载联系人...'}");}//与上面方法一对,负责关闭上面的方法。function finishLoading(){return emf.makeCall('startLoading.finishLoad', "{}");}//自定义dialog,可以指定执行JS方法,可以指定标题,内容。暂时不支持指定时间,需要的话可以随时添加function showCenterTipMyTwoButton(){return emf.makeCall('startLoading.showCenterTipMyTwoButton', "{title:'操作成功',content:'操作成功信息部分',time:'5000',callback:'showCenterTipMyTime()'}");}//自定义dialog,可以指定执行时间,标题,内容。内容部分支持最大48*48像素PNG图片function showCenterTipMyTime(){return emf.makeCall('startLoading.showCenterTipMyTime', "{title:'操作成功时间',content:'时间操作成功信息部分',time:'5000'}");}//系统dialog的封装,可以指定执行时间,标题,内容。有确定,执行一个JS方法,取消不执行。function showCenterTipButtonTwo(){return emf.makeCall('startLoading.showCenterTipButtonTwo', "{title:'操作标题',content:'时间操作成功信息部分呵呵!',callback:'showCenterTipButtonOne()'}");}function showCenterTipButtonOne(){return emf.makeCall('startLoading.showCenterTipButtonOne', "{title:'操作标题',content:'时间操作成功信息部分呵呵!',callback:'showCenterTipButtonTwo()'}");}//系统自带的Dialog,但可以指定执行时间,标题,内容。function showCenterTipTimeSystem(){return emf.makeCall('startLoading.showCenterTipTimeSystem', "{title:'恭喜操作成功',content:'操作成功信息部分',time:'5000'}");}

?

?

5.index.html页面代码

<html>
<head>
<title>EMF</title>
<base href="mobile/">
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<script type="text/javascript" src="file:///android_asset/main.js"
charset="utf-8"></script>


</head>
<body>
<label id='testlabel'>123 </label>
<br />
<br />
<input type="button" value="getStartLoading()" onclick="getStartLoading()" />
<input type="button" value="showCenterTipMyTwoButton()" onclick="showCenterTipMyTwoButton()" />
<input type="button" value="showCenterTipMyTime()" onclick="showCenterTipMyTime()" />
<input type="button" value="showCenterTipTimeSystem()" onclick="showCenterTipTimeSystem()" />
<input type="button" value="showCenterTipButtonTwo()" onclick="showCenterTipButtonTwo()" />
<input type="button" value="showCenterTipButtonOne()" onclick="showCenterTipButtonOne()" />
<br />
</body>
<script type="text/javascript">
//function showCenterTipTest(){

//}

//testlabel.innerText += "abc:" + getDownload();
//getStartLoading();
// window.setTimeout('finishLoading()',6000)
//testlabel.innerText = emf.makeCall('telePhone', '{query:query}');
//testlabel.innerText = "abc:" + getContactsId();
//testlabel.innerText += "abc:" + getDownload();
//testlabel.innerText += "abc:" + getStartLoading();

</script>
</html>
?

热点排行
Bad Request.