2010-09-09 165 views
0

我在嘗試刷新Android應用程序中的視圖時遇到問題。我有一個有圖像的按鈕,我需要做的是當有人點擊按鈕時更改圖像。Android:刷新視圖問題

問題在哪裏?在活動完成代碼之前,圖像不刷新。任何想法,我如何能夠儘快它執行指令

buttton1.setBackgroundDrawable(getResources().getDrawable(R.drawable.f1)); 
+0

你能告訴我們你是如何處理按鈕中的點擊事件嗎?你放的是如何改變按鈕的背景,而且看起來沒問題,所以問題可能在其他地方。 – Cristian 2010-09-09 14:29:40

+0

克里斯蒂安,這是點擊事件代碼 ficha1.setOnClickListener(新View.OnClickListener(){ 公共無效的onClick(查看視圖){ 按鈕BOT =(按鈕)findViewById(R.id.boton1); bot.setBackgroundDrawable (getResources()。getDrawable(R.drawable.f2)); //ficha.setText(fichas.get("boton1「)。toString()); controlJugada(fichas.get(」boton1「)。toString( ),bot); } }); 一旦controlJugada()被執行,背景被更新。我需要首先更新背景。 – user335518 2010-09-09 15:34:45

回答

1

刷新形象都使用XML方面考慮,並有可繪製的選擇是,則選擇將特定的鍵/觸摸事件得到選擇顯示正確的圖形..

-1

您在onclick聽者做的第一件事就是更改按鈕

+1

是的,我知道,但圖像不會改變,直到所有的代碼被處理 – user335518 2010-09-09 16:41:11

0

的backgrount嘗試運行你的方法,從一個線程執行的處理。

ficha1.setOnClickListener(new View.OnClickListener() { 
    public void onClick(View view) { 
     Button bot = (Button) findViewById(R.id.boton1); 
     bot.setBackgroundDrawable(getResources().getDrawable(R.drawable.f2)); 
     //ficha.setText(fichas.get("boton1").toString()); 
     new Thread(
      new Runnable() { 
       public void run() { 
        controlJugada(fichas.get("boton1").toString(), bot); 
       } 
      } 
     ).start(); 
    } 
}); 
0

我通過把有問題的代碼在後處理延遲與零延遲解決了類似的問題。

Handler handler = new Handler(); 
    handler.postDelayed(new Runnable() { 
     @Override 
     public void run() { 
      // code slowing things down here 
     } 
    }, 0);