Заставка - изменение свойств виджета во время цикла - PullRequest
0 голосов
/ 09 октября 2011

Я использую довольно стандартный цикл с режимом сна, который увеличивается на 100 миллисекунд каждый раз, но я хочу добавить изменение цвета текста на полпути ... Однако я получаю ошибку. Есть ли проблема в следующем коде?

public class splashActivity extends Activity {
    TextView tv;
    LinearLayout ll;
    protected boolean _active=true;
    protected int _splashTime=5000;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.splash);

        tv=(TextView)findViewById(R.id.textViewSplash);

        ll=(LinearLayout)findViewById(R.id.linearLayoutSplash);

        Thread splashThread = new Thread(){
            @Override
            public void run() {
                try{
                    int waited=0;
                    while (_active && waited < _splashTime){
                        sleep(100);
                        if(_active){
                            waited += 100;
                        }
                        if(waited >=2500){
                        tv.setTextColor(Color.GREEN);
                         }
                    }
                }
                catch(InterruptedException e){
                }
                finally{
                    finish();
                    startActivity(new Intent("com.kleaverdevelopment.splashTest.SplashTest.mainActivity")); //package.package.package.appName.nextActivity
                    stop();
                }
            }
        };
        splashThread.start();
    }

    @Override
    public boolean onTouchEvent(MotionEvent event) {
        if (event.getAction() == MotionEvent.ACTION_DOWN) {
            _active = false;
        }
        return true;
    }
}

1 Ответ

1 голос
/ 09 октября 2011

Вы не должны обновлять элементы пользовательского интерфейса (TextView в вашем случае) из фонового потока.См. Статью о пользовательском интерфейсе и многопоточности на Android .

...