在做新浪微博客户端。
我的设计是:
点击按钮后,发送微博:
发送微博:

嗯,微博发送成功。
然后希望可以知道自己是否有发送成功,我加了一个Toast,所以变成了这样:

Total并没有显示。软件也报错了。
但是微博还是发送成功的。
01-11 21:44:05.100: W/dalvikvm(4232): threadid=11: thread exiting with uncaught exception (group=0x410ae9d8)
01-11 21:44:05.100: E/AndroidRuntime(4232): FATAL EXCEPTION: Thread-4114
01-11 21:44:05.100: E/AndroidRuntime(4232): java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
01-11 21:44:05.100: E/AndroidRuntime(4232): at android.os.Handler.<init>(Handler.java:121)
01-11 21:44:05.100: E/AndroidRuntime(4232): at android.widget.Toast$TN.<init>(Toast.java:327)
01-11 21:44:05.100: E/AndroidRuntime(4232): at android.widget.Toast.<init>(Toast.java:93)
01-11 21:44:05.100: E/AndroidRuntime(4232): at android.widget.Toast.makeText(Toast.java:235)
01-11 21:44:05.100: E/AndroidRuntime(4232): at com.weibo.sdk.android.demo.Sent_Activity$1$1.onComplete(Sent_Activity.java:40)
01-11 21:44:05.100: E/AndroidRuntime(4232): at com.weibo.sdk.android.net.AsyncWeiboRunner$1.run(AsyncWeiboRunner.java:26)
代码错误只想Toast那行。请问是怎么回事?
或者说各位朋友有更好的方法,可以提示用户微博是否发送成功?
第四个参数RequestListener(){}是朋友帮我加的,不清楚是不是应该用其它呢?
android 新浪微博 java
------解决方案--------------------
微博的update()方法是运行在单独的线程中的,所以无法在其中操作UI元素,提示信息需要通过handler通知UI线程展示
------解决方案--------------------
可以使用同步线程
public class LoginTask extends AsyncTask<String, Integer, Boolean> {
@Override
protected Boolean doInBackground(String... params) {
String username = params[0];
String password = params[1];
boolean result = false;
try {
mUser.setAutoLoad(mRememberCheckBox.isChecked());
result = UserHttpRequest.getUserToken(mContext, username, password);
} catch (Exception e) {
Log.e("login", e.getMessage());
}
return result;
}
@Override
protected void onProgressUpdate(Integer... values) {
if (isCancelled())// Task被取消了,不再继续执行后面的代码
{
return;
}
super.onProgressUpdate(values);
}
@Override
protected void onPreExecute() {
if (isCancelled())// Task被取消了,不再继续执行后面的代码
{
return;
}
showProgressDialog("请稍候", "登陆验证中……");
super.onPreExecute();
}
@Override
protected void onPostExecute(Boolean result) {
if (isCancelled())// Task被取消了,不再继续执行后面的代码
{
return;
}
if (result) {
try {
UserHttpRequest.getClienterInfo();
} catch (JSONException ex) {
}
Frame.getInstance().onSipRegister();
} else {
hideProgressDialog();
Toast.makeText(
GuoSheng_LoginActivity.this.getApplicationContext(),