extends

發表人: 訪客
發表時間: 2011-09-22 15:27:40
你好,請問在一個extends thread 的程式碼裡,要怎麼寫切換頁面的程式?
因為要切換頁面好像是要寫在 extends activity裡
發表人: Seachaos
積分: 2432
發表時間: 2011-09-22 18:01:54
如果你要用Thread來切換Activity或是顯示GUI的話,要用Handle來做
可以的話就盡量把Activity或GUI部份寫在Thread外


以下是最簡單的從Thread處理Activty範例
[sea:javaCode]
// 發給Handler一個Message
myHandler.sendMessage(new Message());
[/sea]


這是handler的範例
[sea:javaCode]
public Handler myHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
// 處理Activity或是GUI
}
};
[/sea]
進階的話可以從Message來傳不同的訊息
發表人: 訪客
發表時間: 2011-09-23 22:50:26
你好,
public Handler myHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
// 處理Activity或是GUI
Intent intent=new Intent();
intent.setClass(DecodeThread.this,first.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

//呼叫一個新的Activity
startActivity(intent);
}
};

我在裡面放置的程式碼是這樣,可是一直出現錯誤,
是因為不能用intent嗎?
發表人: Seachaos
積分: 2432
發表時間: 2011-09-24 17:19:33
您好,不知道你說的錯誤是?
是執行階段的? 還是說在IDE裡的錯誤?
因我沒有看到全部,所以不太清楚是那方面的問題
發表人: 訪客
發表時間: 2011-09-25 23:16:57
你好,就是在
Intent intent=new Intent();
intent.setClass(DecodeThread.this,first.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

//呼叫一個新的Activity
startActivity(intent);
這個部分找不到setClass與startActivity

不知是哪裡有問題
發表人: Seachaos
積分: 2432
發表時間: 2011-09-25 23:50:43
您好:
我想你會不會是把myHandle放錯地方了?
他是要放在Acitivty內的,例如:

[sea:javaCode]
public class Main extends Activity{
....
public Handler myHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
// 處理Activity或是GUI
}
};
}
[/sea]

如果你放在Activity外的話就會有問題
發表人: 訪客
發表時間: 2011-09-26 13:34:36
你好,所以是要寫成
public class Main extends thread{
....

}

public class Main extends Activity{
....
public Handler myHandler = new Handler() {
@Override
public void handleMessage(Message msg) {

}
};
}

這樣嗎?
發表人: Seachaos
積分: 2432
發表時間: 2011-09-26 23:31:00
myHandle要在Activity(Main)內沒錯
另外你的Thread也要在Activity(Main)內
這樣才可以互相呼叫到