У меня проблема с изменением цвета фона. Я хочу изменить его через три секунды после начала работы. Я создал таймер и обработчик + runnable.It прекрасно работает, когда я хочу изменить специальный EditText через три секунды. но когда я добавляю строку layout_interact.setBackgroundColor(Color.GREEN);
и запускаю приложение в виртуальном устройстве, он вылетает, когда он запускает действие, которое содержит таймер и обработчик. Я также попытался запустить новое действие через три секунды, но в результате получилась та же ошибка. Вот мой код:Android - Изменение цвета фона через определенное время
public class ActivityInteractProcess extends Activity{
final Handler handler_interact=new Handler();//not defined as final variable. may cause problem
View layout_interact=(View) findViewById(R.id.layoutintprocess);
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.page_interact_process);
//creating timer
Timer timer_interact=new Timer();
timer_interact.schedule(new TimerTask() {
@Override
public void run() {UpdateGUI();}
}, 3000);
}
private void UpdateGUI() {
handler_interact.post(runnable_interact);
}
//creating runnable
final Runnable runnable_interact = new Runnable() {
public void run() {
layout_interact.setBackgroundColor(Color.GREEN); //this is the line which makes the app Force close.
}
};
}
Я не забыл добавить следующую строку в XML макет деятельности:
android:id="@+id/layoutintprocess"
Здесь находятся ошибки я получил в LogCat:
AndroidRuntime(571): FATAL EXCEPTION: main
AndroidRuntime(571): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{aiLab.tests.autism/aiLab.tests.autism.ActivityInteractProcess}: java.lang.NullPointerException
AndroidRuntime(571): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1739)
AndroidRuntime(571): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1831)
AndroidRuntime(571): at android.app.ActivityThread.access$500(ActivityThread.java:122)
AndroidRuntime(571): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1024)
AndroidRuntime(571): at android.os.Handler.dispatchMessage(Handler.java:99)
...
он отлично работает для меня, если хотите, я могу поставить результат. может быть, ваша проблема в другой части кода – MHP
спасибо. Я попробовал еще несколько раз, и это сработало. проблема установки возникает время от времени для меня. Я не знаю почему. – 0saber0