[問題] 傳值給Thread用
↓用書上範例改的一個球體掉落程式
http://www.mediafire.com/?nsgncnzsc6tljnn
球體會受到startVY大小(這裡我沒給值 可以給值試試)
的影響而向上彈起至不同的高度
我打算從test傳一個值給Sample_7_1這個class
讓它去取代原本在Movable的startVY
方便我可以每次輸入不同數字就能呈現不同的結果
但是我不太清楚該如何讓Movable去認startVY這個值
朋友叫我放一個function也就是saveVY(float VY) ←在Movable那
然後再去Sample_7_1把值存入後就能用了
但雖然編釋沒問題 但正式執行後按下BUTTON後卻顯現錯誤訊息
(所以我連結的程式碼以先將t.saveVY(startVY);作註解 否則不能正常執行結果)
是我saveVY的寫法錯誤嗎 還是說有別種的寫法呢?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.41.132.71
推
03/17 19:19, , 1F
03/17 19:19, 1F
→
03/17 19:19, , 2F
03/17 19:19, 2F
→
03/17 19:20, , 3F
03/17 19:20, 3F
→
03/17 19:38, , 4F
03/17 19:38, 4F
→
03/17 19:38, , 5F
03/17 19:38, 5F
推
03/17 19:43, , 6F
03/17 19:43, 6F
→
03/17 19:44, , 7F
03/17 19:44, 7F
推
03/17 19:47, , 8F
03/17 19:47, 8F
→
03/17 19:47, , 9F
03/17 19:47, 9F
→
03/17 19:48, , 10F
03/17 19:48, 10F
→
03/17 19:48, , 11F
03/17 19:48, 11F
→
03/17 19:49, , 12F
03/17 19:49, 12F
→
03/17 19:50, , 13F
03/17 19:50, 13F
這是test.java傳的資料
Intent intent = new Intent();
intent.setClass(test.this, Movable.class);
Bundle bundle = new Bundle();
bundle.putString("speed", et.getText().toString());
intent.putExtras(bundle);
startActivity(intent);
然後Sample_7_1.java接受
Bundle bunde = this.getIntent().getExtras();
float startVY = Float.parseFloat(bunde.getString("speed"));
但我這邊畫面要引用BallView bv; //BallView物件引用
來當這頁的view而不是用layout
bv = new BallView(this); //新建BallView物件
setContentView(bv); //設定BallView物件為螢幕
可是我希望把test.java那邊過來的startVY
拿來取代我用來描述球體性質的Movable.java上(然後BallThread會拿來計算球速)
所以我在Sample_7_1.java加了這行
t.saveVY(startVY); //t為Movable物件引用
並在Movable.java上放入以下function
public void saveVY(float VY){
this.startVY = VY;
};
結果編釋無誤 執行時我期望輸入數字後
按下Button應該會跳另一個view並呈現相應於輸入數字的球體變化
但卻出現sorry!
主要狀況大約是這樣 可能排版不是很好= =
※ 編輯: lin790505 來自: 114.41.132.71 (03/17 20:20)
推
03/17 21:02, , 14F
03/17 21:02, 14F
→
03/17 21:02, , 15F
03/17 21:02, 15F
→
03/17 23:09, , 16F
03/17 23:09, 16F
→
03/17 23:09, , 17F
03/17 23:09, 17F
推
03/18 00:51, , 18F
03/18 00:51, 18F