2014-07-17 21 views
0

我有一個線程,調用一個Soap web服務,我登錄用戶,然後顯示敬酒說「歡迎」+用戶名......但現在在該UI線程中,我會也喜歡從登錄屏幕導航到主登錄頁面的頁面,但是當我這樣做時我收到一個錯誤。下面是代碼和錯誤。下面在android工作室的線程中打開一個新的活動

線程代碼

Thread thread = new Thread(new Runnable(){ 
       @Override 
       public void run() { 
        try { 


         String Response = ""; 
         HT.call(Soap_action_Temp,envelope); 
         SoapPrimitive resultString = (SoapPrimitive) envelope.getResponse(); 

         Settings.setUserLoginResult(resultString.getValue().toString()); 
         Response = Settings.getUserLoginResult().toString(); 

         if (Response != "") 
         { 
          runOnUiThread(new Runnable() { 
           @Override 
           public void run() { 
            Toast.makeText(LoginScreen.this,"Welcome " + username + " !",Toast.LENGTH_LONG).show(); 
            Intent i = new Intent(LoginScreen.this,LandingPage.class); 
            startActivity(i); 
           } 
          }); 

         } 
        } catch (Exception e) { 
         e.printStackTrace(); 
        } 
       } 
      }); 
      thread.start(); 

問題

圖爲活動是空的?這有什麼理由嗎?

enter image description here

logcat的是顯示我什麼不尋常的,但我的應用程序崩潰,並說:「應用程序名稱已停止工作」

任何一個可以請幫助我們與這是爲什麼失敗?或者是我的代碼錯了?

編輯

該應用程序甚至沒有打到抓事件中,我插嘴說。

這裏是點擊登錄後的logcat的進入和appcrashes

07-17 07:52:33.145 10329-10329/? E/AndroidRuntime﹕ FATAL EXCEPTION: main 
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.Ellipsys.embizomobile/com.example.Ellipsys.embizomobile.LandingPage}: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity. 
      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2295) 
      at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2349) 
      at android.app.ActivityThread.access$700(ActivityThread.java:159) 
      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1316) 
      at android.os.Handler.dispatchMessage(Handler.java:99) 
      at android.os.Looper.loop(Looper.java:176) 
      at android.app.ActivityThread.main(ActivityThread.java:5419) 
      at java.lang.reflect.Method.invokeNative(Native Method) 
      at java.lang.reflect.Method.invoke(Method.java:525) 
      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1046) 
      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:862) 
      at dalvik.system.NativeStart.main(Native Method) 
    Caused by: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity. 
      at android.support.v7.app.ActionBarActivityDelegate.onCreate(ActionBarActivityDelegate.java:108) 
      at android.support.v7.app.ActionBarActivityDelegateICS.onCreate(ActionBarActivityDelegateICS.java:57) 
      at android.support.v7.app.ActionBarActivity.onCreate(ActionBarActivity.java:98) 
      at com.example.Ellipsys.embizomobile.LandingPage.onCreate(LandingPage.java:13) 
      at android.app.Activity.performCreate(Activity.java:5372) 
      at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1104) 
      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2257) 
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2349) 
            at android.app.ActivityThread.access$700(ActivityThread.java:159) 
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1316) 
            at android.os.Handler.dispatchMessage(Handler.java:99) 
            at android.os.Looper.loop(Looper.java:176) 
            at android.app.ActivityThread.main(ActivityThread.java:5419) 
            at java.lang.reflect.Method.invokeNative(Native Method) 
            at java.lang.reflect.Method.invoke(Method.java:525) 
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1046) 
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:862) 
            at dalvik.system.NativeStart.main(Native Method) 
+0

悠唐:Caused by: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.

在清單這活動標籤添加不需要放兩個'runOnUiThread'。您可以將'startActivity..'部分移至第一個部分。其次,如果應用程序崩潰,則必須有logcat所說的內容。 –

+0

不要在後臺進程中放置TOAST通知 –

+0

@Prag's不在後臺進程中,它在UI線程上,因爲Soap調用在後臺線程中我必須創建UI線程才能在屏幕上顯示Toast – Arrie

回答

0

所以,例外的是:android:theme="@style/Theme.AppCompat"

+0

好的,工作?但在我接受之前,你能解釋爲什麼這是必要的嗎?爲什麼屏幕看起來不一樣? – Arrie

+1

我的猜測是,您正在嘗試打開的活動中擴展ActionBarActivity,以便與以前的Android版本兼容。 –

+1

你也可以做的只是擴展活動,如果你不真的需要它。 –

相關問題