[問題] 從class.java傳數值到MainActivity.java

看板AndroidDev作者 (神奇鈕扣)時間12年前 (2013/06/01 00:50), 編輯推噓2(200)
留言2則, 2人參與, 最新討論串1/1
各位好, 我是最近想開發Android程式的新手,當然也沒學過java,我知道這對開發會是個障礙... 所以我有時遇到問題會看網路上的解說, 最近看到一個程式,在數值傳遞的部份,讓我有問題想問各位先進, 就是這有兩個檔案,分別是MainActivity.java與AAA.java檔, MainActivity.java檔是extends Activity,是該程式中唯一一個Activity檔, 另外AAA.java就是一般的public class AAA{ } (應該是稱副程式吧?-我不太確定) MainActivity.java會呼叫AAA.java裡的執行緒,讓它計算數值並回傳到Main.java中, 但這回傳的方式有二種 (1)--- 在AAA.java檔中-傳送的寫法: mHandler.obtainMessage(MainActivity.MESSAGE_READ01, Division, -1, null).sendToTarget(); //(Division是它在該執行緒中計算的數值,上面那行也是在那執行緒內寫的程式碼之一 //。) 在MainActivity.java-接收的寫法: private final Handler mHandlerAA = new Handler() { @Override public void handleMessage(Message msg) { switch (msg.what) { case MESSAGE_A: break; case MESSAGE_READ01: int data; data = msg.arg1; //在這邊讀取AAA.java傳過來的值 break; case MESSAGE_READ02: break; } } }; (2)--- 在AAA.java檔中-傳送的寫法 Message msg = mHandler.obtainMessage(MainActivity.MESSAGE_READ02); Bundle calvalue = new Bundle(); calvalue.putInt("cal",f1); //f1為這AAA.java計算出來的數值 msg.setData(calvalue); msg.sendToTarget(); 在MainActivity.java-接收的寫法 private final Handler mHandlerAA = new Handler() { @Override public void handleMessage(Message msg) { switch (msg.what) { case MESSAGE_A: break; case MESSAGE_READ01: break; case MESSAGE_READ02: int CCValue; Bundle calvalue = msg.getData(); CCValue = calvalue.getInt("cal"); //在這邊讀取AAA.java傳過來的值 String s1 = String.valueOf(CCValue); break; } } }; 上述二種寫法,好像都要丟到private final Handler mHandlerAA = new Handler()內, 但是我另外有一個runnable執行緒,是與處理mHandlerAA的執行緒是並行的, 如: private Runnable r1=new Runnable () { //參數設定 public void run() { //正執行於runnable的程式 } }; 我想在上面參數設定使用在AAA.java內那個執行緒中算出來的數值, 因此, 想請教各位我要怎麼(一定要透過什麼msg嗎?有無其他的方法)傳遞數值到 (1)//參數設定的位置 或是 (2)//正執行於runnable的程式, 因為上述正執行於runnable的程式有用到AAA.java的數值。 這對我很重要,小弟先在此謝過各位先進><" p.s.: mHandlerAA是一個執行緒去處理,而runnable執行緒與該執行緒是並行的關係, 因此我想說,在class檔(AAA.java)內一個數值, 可否透過某種方式傳到runnable內? (也就是程式原本就有從AAA.java傳數值到MainActivity到其中的執行緒, 我還要傳數值到我額外實作的runnable內(是HandlerThread)。) -- ★ Rise 天空適合太陽 ☆ Voice 包容孤獨 ☆ Force 適合堅強 ★ Stay滔滔聲浪禱告 ★ Days 淚水當中有夢想 ☆ Grace 歡欣 ☆ Stage 描繪未來 掌握★ Stars 作了 我的快樂 鑽石當中 綻放夢想英仙座 ☆ 南十字星 都將被超越英仙座 ☆ Field of dreams 我相信閃亮 ★ Dreams come true 我相信閃亮 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.167.10.25 ※ 編輯: kusoman 來自: 118.167.10.25 (06/01 00:59)

06/01 01:08, , 1F
不太明白你的意思 在AAA內寫一個public靜態方法回傳
06/01 01:08, 1F

06/01 10:26, , 2F
bundle 不會用的話 就回去看看JAVA書 非常誠心建議你這樣
06/01 10:26, 2F
文章代碼(AID): #1HgDJ7w3 (AndroidDev)