作者kusoman (神奇钮扣)
看板AndroidDev
标题[问题] 从class.java传数值到MainActivity.java
时间Sat Jun 1 00:50:01 2013
各位好,
我是最近想开发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)
1F:推 march23:不太明白你的意思 在AAA内写一个public静态方法回传 06/01 01:08
2F:推 jakevin:bundle 不会用的话 就回去看看JAVA书 非常诚心建议你这样 06/01 10:26