检测cordova插件中按下的后退按钮

时间:2014-01-06 06:54:31

标签: javascript android cordova phonegap-plugins back

我在android中使用cordova插件(3.2)时遇到了另一个问题。我为cordova创建了一个自定义插件,因为默认插件与我的期望不符。我希望创建一个自定义警报对话框,其中包含项目和复选框。这是源代码:

使用Javascript:

cordova.exec(
        function(listitem) {
            console.log("select: " +interestResultName[listitem]);
            selectedResult.push(interestResultName[listitem]);
        }, 
        function(error) {
            alert("Error Occured");
        }, "AlertList", "showlistitem", interestResultName );

爪哇:

public class AlertList extends CordovaPlugin {
public AlertList() {
}
@Override
public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
    if(action.equals("showlistitem")) {
        this.loadList(args, callbackContext);
    }
    return true;
}

public void loadList(final JSONArray thelist, final CallbackContext callbackContext) {
    final CordovaInterface cordova = this.cordova;

    Runnable runnable = new Runnable() {

        public void run() {

            List<String> list = new ArrayList<String>();

            for( int x = 0; x < thelist.length(); x++) {
                try {
                    list.add( thelist.getString(x) );
                } catch (JSONException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }

            CharSequence[] items = list.toArray(new CharSequence[list.size()]);
            boolean[] checkbox = new boolean[list.size()];

            AlertDialog.Builder builder = new AlertDialog.Builder(cordova.getActivity());
            builder.setTitle(" ");

            builder.setMultiChoiceItems(items, checkbox, new DialogInterface.OnMultiChoiceClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int item, boolean isChecked) {
                    // TODO Auto-generated method stub
                    PluginResult result = new PluginResult(PluginResult.Status.OK, item);
                    result.setKeepCallback(true);
                    callbackContext.sendPluginResult(result);
                }
            });

            AlertDialog alert = builder.create();
            alert.getWindow().getAttributes().windowAnimations = android.R.style.Animation_Dialog;
            alert.show();    
        }
    };
    this.cordova.getActivity().runOnUiThread(runnable);
}

}

问题来自onClick方法。由于它是一个复选框,我仍然保持回调打开,直到用户按下后退按钮。但是我不能像往常一样实现后退按钮功能,因为我的java类扩展了CordovaPlugin而不是Activity。有没有人可以帮我这个?

我的期望是:用户选择他想要的项目后,点击后退按钮。然后回调上下文将所选项发送到我的javascript函数(代码:selectedResult.push(interestResultName [listitem]);)。

谢谢,

HARY

0 个答案:

没有答案