方法调用在Android中不起作用

时间:2015-01-21 09:34:36

标签: android android-intent

我在尝试这个问题之前尝试了很多。

Messaging msg = new Messaging();

msg.appendToMessageHistorysend(FriendList.ownusername, str);

我从另一个Activity调用appendToMessageHistorysend函数到消息传递类

public void appendToMessageHistorysend(String username, String message) {
        if (username != null && message != null) {

            username1 = "<font color=#FF66CC>" + "<b>" + username + "<b/>"
                    + ":  " + "</font>";

            message1 = "<font color=#ffcc00>" + message + "&#13;&#10;"
                    + "<br/>" + "</font>";

            Thread thread = new Thread() {

                @Override
                public void run() {

                    handler.post(new Runnable() {

                        public void run() {
                                    if (messageHistoryText != null) {
                            messageHistoryText.append(Html
                                    .fromHtml(username1));
                            messageHistoryText.append(Html
                                    .fromHtml(message1));
                        }

                        else {
                            Toast.makeText(mCon, "hey yo you are null",
                                    Toast.LENGTH_LONG).show();
                        }
                        }

                    });
                }

            };
            thread.start();

        }
    }

这是被调用的函数,我收到如下错误

    01-21 15:21:42.552: E/AndroidRuntime(16751): FATAL EXCEPTION: main
01-21 15:21:42.552: E/AndroidRuntime(16751): java.lang.NullPointerException
01-21 15:21:42.552: E/AndroidRuntime(16751):    at at.vcity.androidim.Messaging$7$1.run(Messaging.java:515)
01-21 15:21:42.552: E/AndroidRuntime(16751):    at android.os.Handler.handleCallback(Handler.java:615)
01-21 15:21:42.552: E/AndroidRuntime(16751):    at android.os.Handler.dispatchMessage(Handler.java:92)
01-21 15:21:42.552: E/AndroidRuntime(16751):    at android.os.Looper.loop(Looper.java:137)
01-21 15:21:42.552: E/AndroidRuntime(16751):    at android.app.ActivityThread.main(ActivityThread.java:4812)
01-21 15:21:42.552: E/AndroidRuntime(16751):    at java.lang.reflect.Method.invokeNative(Native Method)
01-21 15:21:42.552: E/AndroidRuntime(16751):    at java.lang.reflect.Method.invoke(Method.java:511)
01-21 15:21:42.552: E/AndroidRuntime(16751):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)
01-21 15:21:42.552: E/AndroidRuntime(16751):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:556)
01-21 15:21:42.552: E/AndroidRuntime(16751):    at dalvik.system.NativeStart.main(Native Method)
01-21 15:21:44.704: E/Trace(17053): error opening trace file: No such file or directory (2)

请给你宝贵的时间,我非常感谢每个人。

1 个答案:

答案 0 :(得分:2)

您需要Context在其他课程中显示Toast

因此,您需要在 Messaging 类中创建单个参数构造函数,例如

private Context mCon;
public void Messaging(Context con){
 this.mCon=con;
}

然后像

一样使用
Toast.makeText(mCon, "Testing",Toast.LENGTH_LONG).show();

并调用

Messaging msg = new Messaging(getApplicationContext());