[问题] 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