我有一个问题,就是将从处理程序获取的值传递给同一个类中的另一个方法,如下所示,编辑:关于Class.myvalue自带的无法解析或者不是字段,我是否正确使用设置并获得?
public static double getMyValue() { return myValue; //OR return Class.myValue
}
public static double setMyValue(double myValue) { Class.myValue = myValue;}
private final Handler mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
String data;
switch (msg.what) {
case MESSAGE_STATE_CHANGE:
switch (msg.arg1) {
case BluetoothRfcommClient.STATE_CONNECTED:
mBTStatus.setText(R.string.title_connected_to);
mBTStatus.append("\n" + mConnectedDeviceName);
break;
case BluetoothRfcommClient.STATE_CONNECTING:
mBTStatus.setText(R.string.title_connecting);
break;
case BluetoothRfcommClient.STATE_NONE:
mBTStatus.setText(R.string.title_not_connected);
break;
}
break;
case MESSAGE_READ: // todo: implement receive data buffering
byte[] readBuf = (byte[]) msg.obj;
String readMessage = new String(readBuf, 0, msg.arg1);
Toast.makeText(GaitViewGraph.this, readMessage, Toast.LENGTH_SHORT).show();
//double value = Double.parseDouble(readMessage); // convert byte array to double
//changedvalue = value;
double value = Double.parseDouble(readMessage);
setMyValue(value);
在我将字节数组转换为double之后,我想将此“值”传递给此方法(getChangevalue)
private double getChangevalue() {
return getMyValue();
}
那我该怎么办呢?或者有没有办法从处理程序中获取价值?请指教..
答案 0 :(得分:1)
我认为,使用setter作为静态变量可以解决这个问题。 编辑: 只需添加此
private static double myValue = 0.0D;
public static void getMyValue() { return myValue; /*OR return Class.myValue*/ }
public static double setMyValue(double myValue) { Class.myValue = myValue;}
这是添加到处理程序之上。
然后使用它,调用setMyValue()来调用getMyValue();
答案 1 :(得分:1)
您使用handler.sendMessage()
传递一些价值。
Message msg = handler.obtainMessage();
Bundle bundle = new Bundle();
bundle.putString("myKey", "abc");
msg.setData(bundle);
handler.sendMessage(msg);
您可以阅读更多here