[問題] 從class.java傳數值到MainActivity.java
各位好,
我是最近想開發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
06/01 01:08, 1F
推
06/01 10:26, , 2F
06/01 10:26, 2F