我在尝试这个问题之前尝试了很多。
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 + " "
+ "<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)
请给你宝贵的时间,我非常感谢每个人。
答案 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());