2010-09-09 127 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);