Я очень новичок в программировании на андроидах, поэтому, пожалуйста, простите мне noobie-ness. Я пытаюсь создать очень простое действие, которое будет иметь один TextView в середине макета и просто переключится на другой текст каждые пару секунд. Например, TextView скажет "text1", приостановит на пару секунд, затем скажет "text2 и снова приостановит". В конце концов, я хочу добавить больше текстов и заставить их все цикл один за другим. Я знаю, что это похоже на супер простая вещь, но в настоящее время я в основном пытаюсь узнать о потоках и обработчиках. В любом случае, я прочитал, как мы должны хранить длинные вещи из потока пользовательского интерфейса, чтобы предотвратить ошибку, поэтому я решил использовать обработчик просто переключаться между 2 текстами на экране. К сожалению, я не могу заставить это работать. Вот какой код:
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, чтобы он мог быть таким же, как одна из строк в массиве, но это дает мне ошибку. Я застрял в этом часами, и другие примеры, которые я нашел в Интернете, кажутся слишком сложными для кого-то вроде меня, который в основном хочет убрать основы, прежде чем я смогу заняться другими делами. Любая помощь вообще с любым из этого была бы высоко оценена. Спасибо.