Android 我如何从另一个类调用onDraw?

Android 我如何从另一个类调用onDraw?,android,Android,我创建了一个自定义视图,并将其添加到xml文件中的布局中。我试图用一个click事件刷新自定义视图,但我不知道如何从其他类调用onDraw方法。invalidate和postInvalidate不会刷新自定义视图。您应该在视图中创建方法,该方法从视图内部接受更改和调用invalidate public void setTextSize (int size) { mTextSize = size; invalidate(); } 对我来说很合适 您肯定应该调用View.

我创建了一个自定义视图,并将其添加到xml文件中的布局中。我试图用一个click事件刷新自定义视图,但我不知道如何从其他类调用onDraw方法。invalidate和postInvalidate不会刷新自定义视图。

您应该在视图中创建方法,该方法从视图内部接受更改和调用invalidate

public void setTextSize (int size) {
      mTextSize = size; 
      invalidate();
}

对我来说很合适

您肯定应该调用View.invalidate()。确保视图可见并具有测量尺寸-即确保视图GetMeasurerDwidth()和GetMeasurerDheight()返回>0


在ondraw方法的开头放一条日志消息,以验证它是否有效。但肯定应该是invalidate()。可能您的数据没有更改?

正在使调用onDraw()方法的视图结果无效


通过从不同的类调用customViewClassName.invalidate()可以调用onDraw()方法。

我将使用消息处理程序来实现这种机制。在自定义视图类中,创建,然后将此处理程序的引用传递给按钮(例如在活动的onCreate事件中),然后使用sendMessage()/handleMessage()机制在按钮和其他视图之间进行通信


如果需要,此方法还允许所有其他组件与自定义视图进行良好交互。

我应该从自定义视图向活动类发送什么消息?我似乎无法发送无效调用或画布。