2011-11-17 35 views
0

下面是我的代碼,它顯示了一個進度對話框來驗證用戶。 我想顯示敬酒消息,當用戶ID或密碼不匹配(響應代碼不是200) 但我得到一個警告吐司消息不顯示,得到警告:窗口已經聚焦,忽略焦點增益:com.android.internal.view

WARN/InputManagerService(58): Window already focused, ignoring focus gain of: com.android.internal.view.IInputMethodClient$Stub$Proxy 

和烤麪包的消息不顯示

代碼

new Thread() { 
     public void run() { 
      Looper.prepare(); 
       try { 
        performBackgroundProcess(); 
        } catch (Exception e) { 
        Log.e("tag", e.getMessage()); 
        } 
       } 
       }.start(); 



    private void performBackgroundProcess() { 
     String sUserName = usernameEditText.getText().toString(); 
     String sPassword = String authentication = sUserName + ":" + sPassword; 
     String login = Base64.encodeToString(authentication.getBytes(), 
          Base64.NO_WRAP); 
     Resources res = getResources(); 
     String URLLogin = res.getString(R.string.URLlogin); 
     RestClient client = new RestClient(URLLogin, login); 
     try { 
      client.Execute(RequestMethod.POST); 
      } catch (Exception e) { 
      e.printStackTrace(); 
      } 
     if (client.getResponseCode() != 200) { 
      progressDialog.dismiss(); 
      Toast.makeText(getApplicationContext(),"Username or Password does not match",Toast.LENGTH_SHORT).show(); 
     } 
    } 

回答

0

我認爲你在後臺運行代碼所以吐司不會在那裏工作你必須在UI線程上不要Toast寫Toast ..因爲這個線程無法更新UI廣告..我建議你使用AsyncTask進行線程處理,它非常乾淨並且易於使用。

+0

據我所知,沒有代碼在後臺運行,得到響應後我想顯示烤麪包...無論如何,如果問題可以使用異步任務解決,請你舉例或請編輯我的帖子 – Romi

0

而不是將作用域getApplicationcontext作爲'this'或'ActivityName.class'賦予並檢查。 沒有檢查它,但可能工作。

+0

這或ActivityName.class給出錯誤,我使用了ActivityName.this但沒有工作 – Romi

2

看到你想要的UI變化,烤麪包,對話框,你不能在另一個線程上。你必須在主UI線程上做到這一點。對你來說一個簡單的方法是使用處理程序,因爲現在使用aync將不得不做出許多更改。

new Handler().post(new Runnable() { 
        public void run() { 
         progressDialog.dismiss(); 
     Toast.makeText(getApplicationContext(),"Username or Password does not match",Toast.LENGTH_SHORT).show(); 
        } 
      }); 

    } 

android.os的處理程序不是java的here。

+0

vikky:通過你的代碼progressDialog繼續運行,意味着這個thraed不運行。我寫在if(client.response!= 200){ – Romi

+0

好的。在Handler handler = new Handler();等活動中創建處理程序的實例。 – vikky

+0

仍然在日誌中獲得警告,但雅敬酒顯示:) – Romi

相關問題