[問題] TextView與Spinner問題

作者: haley80208 (jjj)   2018-10-13 16:00:34
各位大大好,小弟最近剛接觸Andorid
目前程式需要兩個功能,爬了一些文章可是還是沒看懂要如何應用
希望大大可以提供一些意見
1.想用下拉式選單提供秒數,讓旁邊的幻燈片可以按照選擇的秒數變化
2.要在打開程式後,TextView持續更新文字
爬文有看到很多方法,但好像幾乎都是按下按鈕後才能變化
以下是目前的程式碼,可是打開一秒後,app就會閃退
public class test extends AppCompatActivity {
private static final int msgKey1 = 1;
String random_text;
private TextView t1;
private Handler mHandler = new Handler() {
public void handleMessage(Message msg) {
super.handleMessage(msg);
switch (msg.what) {
case msgKey1:
t1.setText(testRandom2());
break;
default:
break;
}
}
};
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test);
TextView t1 = findViewById(R.id.t1);
new TimerThread().start();
}
private String testRandom2() {
Random random = new Random();
String test1 = String.valueOf(random.nextInt(999) % (999 - 100 + 1) +
100);
return test1;
}
public class TimerThread extends Thread {
public void run() {
do {
try {
Thread.sleep(1000);
Message msg = new Message();
msg.what = msgKey1;
mHandler.sendMessage(msg);
} catch (InterruptedException e) {
e.printStackTrace();
}
} while (true);
}
}
}
作者: kobe8112 (小B)   2018-10-13 16:14:00
建議要最先學習看Logcat,找出是哪裡造成程式錯誤的
作者: zcbxvsdf (東北一頭羊)   2018-10-13 17:44:00
t1宣告兩次,mainThread才能刷新UI閃退資訊Logcat都有寫,先學會看吧
作者: aids61517 (奇歐巴肯)   2018-10-13 20:22:00
閃退應該是NPE造成的,在onCreate裡宣告的導致外面的t1仍然是null,之後你setText就會NPE
作者: y3k (激流を制するは静水)   2018-10-13 20:39:00
你不應該再onCreate()裡面再宣告一個t1 這樣跟外面的t1會是不同一個 這種基礎要趕快補起來喔@@
作者: haley80208 (jjj)   2018-10-13 20:56:00
謝謝各位的幫忙,目前第二個問題已經解決。有沒有大大能幫忙第一個的問題,謝謝
作者: erty0402 (缺副駕駛)   2018-10-14 00:37:00
spinner sample看看應該就可以了吧

Links booklink

Contact Us: admin [ a t ] ucptt.com