java - 如何从扩展 RelativeLayout 的类更改 Activity 中的 Textview 文本
问题描述
在我的 MainActivity 中,我有一个 TextView。现在,在扩展相对布局的其他类中,我实现了一个 MessageListener(使用 onNewMessage 方法)每秒接收一些值。我想将此值放在 MainActivity 中的 TextView 中。这是我班级的一个简单示例:
public class VirtualJoystickView extends RelativeLayout implements
MessageListener<nav_msgs.Odometry>{
public VirtualJoystickView(Context context) {
super(context);
initVirtualJoystick(context);
topicName = "/pepper/cmd_vel";
}
public VirtualJoystickView(Context context, AttributeSet attrs) {
super(context, attrs);
initVirtualJoystick(context);
topicName = "/pepper/cmd_vel";
}
public VirtualJoystickView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
topicName = "/pepper/cmd_vel";
}
@Override
public void onNewMessage(final nav_msgs.Odometry message) {
//I need to put this value inside TextView that are in MainActivity
double w = message.getPose().getPose().getOrientation().getW();
double x = message.getPose().getPose().getOrientation().getX();
double y = message.getPose().getPose().getOrientation().getZ();
double z = message.getPose().getPose().getOrientation().getY();
}
感谢帮助。
解决方案
如果您在 MainActivity 类中调用此类,则可以向构造函数添加另一个值,该值将是您的 Textview
TextView textview;
public VirtualJoystickView(Context context, TextView textview) {
super(context);
initVirtualJoystick(context);
topicName = "/pepper/cmd_vel";
this.textview = textview;
}
现在您可以使用更改它的文本
textview.setText("some text");
推荐阅读
- wordpress - 无法使用域名访问子目录
- python - 通过 protobuf 在服务器(node.js)和客户端(python/node.js)之间交换消息
- java - 如何转换集合
设置 在 Spring Boot 中 - reactjs - 为什么 react-redux 将连接的组件包装在备忘录中
- python - 每个邮件合并文档后的空白页
- google-apps-script - 为什么会出现此错误:参数 (String,number,number,number) 与 SpreadsheetApp.Spreadsheet.getRange 的方法签名不匹配
- javascript - Javascript String.split 应该以 1 作为分隔符分割二进制字符串
- sonarqube - 将 sonarqube 历史从一台服务器迁移到另一台服务器
- reactjs - 我可以将 React 用户帖子长度分享给其他组件吗
- encoding - 调查数据的预处理