Приостановка с обработчиком и postDelayed в Android
Я очень новичок в программировании Android, поэтому, пожалуйста, прости мой нубизм. Я пытаюсь создать очень простое действие, которое будет иметь один TextView в середине макета и просто переключать его на другой текст каждые пару секунд. Например, TextView скажет «text1», сделает паузу на пару секунд, затем произнесет «text2» и снова сделает паузу. В конце концов, я хочу добавить больше текстов и сделать так, чтобы все они циклически сменяли друг друга. Я знаю, что это похоже на Очень простая вещь, но я в основном пытаюсь узнать о потоках и обработчиках в данный момент. В любом случае, я прочитал о том, как мы должны хранить длинные вещи в потоке пользовательского интерфейса, чтобы предотвратить ошибку, поэтому я решил использовать обработчик просто переключаться между двумя текстами на экране. К сожалению, я не могу заставить это работать. Вот некоторый код:
public class MainActivity extends Activity {
String[] myarray = {"text1" , "text2"};
int arraylength = myarray.length;
int count;
Handler handler = new Handler();
TextView mytexts;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mytexts = (TextView)findViewById(R.id.my_texts);
mytexts.setText(myarray[0]);
Thread t = new Thread( new Runnable(){
public void run() {
for (int count = 0; count < arraylength; count++){
handler.postDelayed(new Runnable(){
public void run() {
mytexts.setText(myarray[1]);
}
}, 7000);
}
}
});
t.start();
}
}
Из того, что я вижу в logcat, похоже, что обработчик запускает postDelayed один за другим (в моем коде, он НЕ ждет 7 секунд с postDelay, чтобы сделать еще один postDelayed). Кроме того, я хотел бы сделать 1 в "mytexts.setText (myarray [1]);" быть таким же, как "count" в цикле for, поэтому он может быть таким же, как одна из строк в массиве, но это дает мне ошибку. Я застрял на этом часами, и другие примеры, которые я нашел в Интернете, кажутся слишком сложными для такого человека, как я, который в основном хочет разобраться в основах, прежде чем я смогу заняться другими вещами. Любая помощь с любым из этого будет очень цениться. Спасибо.