【问题标题】:Toast message is not coming in android studio phonegapToast 消息没有出现在 android studio phonegap 中
【发布时间】:2016-04-25 22:36:38
【问题描述】:

我是 android studio 的新手。我正在为我的应用程序做 toast 消息,但我无法做到这一点。这个在 eclipse 中工作,但不适用于 android studio。我尝试了很多,但 toast 消息根本没有显示。 以下是代码。请建议我。提前谢谢。

索引.html

<!DOCTYPE html>
   <html>
    <head>
        <meta charset="utf-8" />
        <meta name="format-detection" content="telephone=no" />
        <meta name="msapplication-tap-highlight" content="no" />
         <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height, target-densitydpi=device-dpi" />
        <link rel="stylesheet" type="text/css" href="css/index.css" />
        <title>Hello World</title>
        <script type="text/javascript" src="cordova.js"></script>
        <script type="text/javascript" src="toastPlugin.js"></script>
        <script>
          function toast()
            {
               // alert('hii');
               // shortToast("Short Toast Message Here...");
               longToast("Long Toast Message Here...");
            }
    </script>

    </head>
    <body>
        <div class="app">
            <h1>Apache Cordova</h1>
            <div id="deviceready" class="blink">
                <div onclick="toast();">click</div>

            </div>
        </div>
</body>
</html>

toastPlugin.js

          window.shortToast = function(str, callback) {   
    cordova.exec(callback, function(err) {
        callback('Nothing to echo.');
    }, "ToastPlugin", "shortToast", [ str ]);
};

window.longToast = function(str, callback) {
   alert(str);//Long Toast Message Here...
    cordova.exec(callback, function(err) { alert("Nothing to echo");
        callback('Nothing to echo.');
    }, "ToastPlugin", "longToast", [ str ]);
};

ToastPlugin.java

package com.raddyx.myapplication;

        import org.apache.cordova.api.CallbackContext;
        import org.apache.cordova.api.CordovaPlugin;
        import org.json.JSONArray;
        import org.json.JSONException;

        import android.util.Log;
        import android.widget.Toast;

public class ToastPlugin extends CordovaPlugin {
    @Override
    public boolean execute(String action, JSONArray args,
                           CallbackContext callbackContext) throws JSONException {

        String message = args.getString(0);

        // used to log the text and can be seen in LogCat
        Log.d("Toast Plugin", "Calling the Toast...");
        Log.d("Toast Plugin", message);

        if (action.equals("shortToast")) {
            this.shortToast(message, callbackContext);
            return true;
        } else if (action.equals("longToast")) {
            this.longToast(message, callbackContext);
            return true;
        }
        return false;
    }

    private void shortToast(String message, CallbackContext callbackContext) {
        if (message != null && message.length() > 0) {
            Toast.makeText(cordova.getActivity().getApplicationContext(),
                    message, Toast.LENGTH_SHORT).show();
            callbackContext.success(message);
        } else {
            callbackContext.error("Expected one non-empty string argument.");
        }
    }

    private void longToast(String message, CallbackContext callbackContext) {
        if (message != null && message.length() > 0) {
            Toast.makeText(cordova.getActivity().getApplicationContext(),
                    message, Toast.LENGTH_LONG).show();
            callbackContext.success(message);
        } else {
            callbackContext.error("Expected one non-empty string argument.");
        }
    }
}

在 config.xml 中

 <feature name="ToastPlugin"> <param name="android-package" value="com.raddyx.plugins.ToastPlugin" /> </feature>

【问题讨论】:

  • cordova.getActivity().getApplicationContext() 这个Object 在哪里初始化?科尔多瓦?你的 logcat 是什么?
  • 我会放cordova.getActivity().getApplicationContext();在 ToastPlugin.java 中? @helldawg
  • cordova 对象未初始化,因此可能会给您 NullPointerException
  • 有什么理由不使用现有的 toast 插件,比如this
  • 好的,我是 cheking.@helldawg13

标签: android cordova android-studio phonegap-plugins android-toast


【解决方案1】:

PhoneGap Toast 插件

使用 CLI

为 iOS、Android 和 WP8 Cordova 应用安装 toast 弹出插件

cordova plugin add cordova-plugin-x-toast

然后在您的index.html 中添加cordova_plugins.js 并调用以下函数

showShortTop(消息)

window.plugins.toast.showShortTop('Hello there!', function(a) {
    console.log('toast success: ' + a);
}, function(b) {
    alert('toast error: ' + b);
})

showLongBottom(消息)

window.plugins.toast.showLongBottom('Hello there!', function(a) {
     console.log('toast success: ' + a)
}, function(b) {
     alert('toast error: ' + b)
})

【讨论】:

  • 您好,我在创建应用阶段遇到问题。
  • 这里根据文档,应用程序将在源代码目录中创建。它是 d:/xampp/htdocs ,但它是在 d 中创建的。如何在 cmd 中更改它?
  • 嗨,我知道了。进行下一步。谢谢。
  • 嗨,我又面临一个问题。
  • 它显示 toast 错误:找不到类,在工作室中我看到了 I/System.out 之类的错误:添加插件 nl.xservices.plugins.Toast 时出错。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-16
  • 2016-11-04
  • 1970-01-01
  • 1970-01-01
  • 2021-11-24
  • 2011-07-15
相关资源
最近更新 更多