这是我的徒手:
public Handler handler = new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
String mmsg = msg.getData().getByteArray("msg").toString();
Toast.makeText(clientActivity.this, mmsg,Toast.LENGTH_LONG).show();
}
};
我从单独的线程发送数据:
public class client implements Runnable
{
private void showtoast(byte[] msgtoshow){
try {
Bundle mbundle = new Bundle();
Message greeting = new Message();
mbundle.putByteArray("msg", msgtoshow);
greeting.setData(mbundle);
handler.sendMessage(greeting);
}catch(Exception e){
Log.d("error",e.getMessage());
}
}
public void run()
{
msgstrng = "this is supposed to be some text";
showtoast(msgstrng.getBytes());
}
} 而不是我在msgstng中发送的行,而是一些总是不同的[B @ 411dd11]。我猜它是时间戳或smth。如何获得字符串值msgstng? 实际上对我来说更重要的是获取字节数组,因为如果我知道这个问题,我会将位图从socket发送到UI
答案 0 :(得分:0)
问题似乎是你在Handler
中获取字符串的方式。
尝试这样的事情:
String mmsg = new String(msg.getData().getByteArray("msg"));