java handler 跨类 传多个对象及参数 使用demo
时间: 2024-03-11 11:49:58 浏览: 19
可以通过创建一个包含多个对象和参数的数据类来实现跨类传递多个对象和参数。然后使用Handler将该数据类发送到目标类中,接收方就可以直接从数据类中获取所需的对象和参数。
以下是一个简单的示例:
首先,创建一个包含多个对象和参数的数据类,例如:
```
public class MyData {
private Object obj1;
private Object obj2;
private int param1;
private String param2;
public MyData(Object obj1, Object obj2, int param1, String param2) {
this.obj1 = obj1;
this.obj2 = obj2;
this.param1 = param1;
this.param2 = param2;
}
public Object getObj1() {
return obj1;
}
public Object getObj2() {
return obj2;
}
public int getParam1() {
return param1;
}
public String getParam2() {
return param2;
}
}
```
然后,在发送方类中创建Handler,并将MyData对象发送到目标类:
```
public class SenderClass {
private Handler handler;
public SenderClass(Handler handler) {
this.handler = handler;
}
public void sendData() {
Object obj1 = new Object();
Object obj2 = new Object();
int param1 = 1;
String param2 = "hello";
MyData data = new MyData(obj1, obj2, param1, param2);
Message message = handler.obtainMessage();
message.obj = data;
handler.sendMessage(message);
}
}
```
在接收方类中,通过Handler接收MyData对象,并从中获取所需的对象和参数:
```
public class ReceiverClass {
private Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
MyData data = (MyData) msg.obj;
Object obj1 = data.getObj1();
Object obj2 = data.getObj2();
int param1 = data.getParam1();
String param2 = data.getParam2();
// do something with obj1, obj2, param1, and param2
}
};
}
```
这样就可以在不同的类之间传递多个对象和参数了。