首页 > 解决方案 > 如何从扩展 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();
}

感谢帮助。

标签: javaandroidtextviewros

解决方案


如果您在 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");

推荐阅读