在做新浪微博客户端。我的设计是:
点击按钮后,发送微博:发送微博:
嗯,微博发送成功。然后希望可以知道自己是否有发送成功,我加了一个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

解决方案 »

  1.   

    Toast.makeText(getApplicationContext(), "再按一次退出程序", Toast.LENGTH_SHORT).show(); //汉字部分最好放入到String.xml中定义   
      

  2.   

    微博的update()方法是运行在单独的线程中的,所以无法在其中操作UI元素,提示信息需要通过handler通知UI线程展示
      

  3.   

    可以使用同步线程
    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(),
    "登录失败", Toast.LENGTH_LONG).show();
    } super.onPostExecute(result);
    }