カスタムビューを作成し、それをxmlファイルのレイアウトに追加しました。 Clickイベントでカスタムビューを更新しようとしていますが、別のクラスからonDrawメソッドを呼び出す方法がわかりません。 invalidateとpostInvalidateはカスタムビューを更新していません。別のクラスからonDrawを呼び出すにはどうすればよいですか?
2
A
答えて
4
ビュー内でメソッドを作成して、変更を受け取り、ビューの内部から無効を呼び出す必要があります。
public void setTextSize (int size) {
mTextSize = size;
invalidate();
}
私にとっては完璧に機能します。
0
View.invalidate()を呼び出す必要があります。ビューが表示され、測定された寸法を持つことを確認します。つまり、ビューgetMeasuerdWidth()およびgetMeasuerdHeight()が> 0を返すようにします。
ondrawメソッドの先頭にログメッセージを挿入して、動作することを確認します。間違いなくinvalidate()する必要があります。データが変更されていない可能性がありますか?
0
onDraw()メソッドの呼び出し結果を無効にします。
別のクラスからcustomViewClassName.invalidate()を呼び出すと、onDraw()メソッドが呼び出されます。
0
私はこのような仕組みを実現するためにメッセージハンドラを使用します。カスタムViewクラスでHandlerを作成し、このハンドラの参照をボタンに渡してから(たとえば、アクティビティのonCreateイベント)、sendMessage()/ handleMessage()メカニズムを使用してButtonと他のビュー。
この方法では、必要に応じて他のすべてのコンポーネントをカスタムビューとうまく組み合わせることもできます。
関連する問題
- 1. iOSの別のクラスからView Controllerメソッドを呼び出すにはどうすればよいですか?
- 2. クラス内のオブジェクト内からクラス関数を呼び出すにはどうすればよいですか?
- 3. 別のクラスで作成されたNSMutableArrayを呼び出すにはどうすればよいですか?
- 4. 静的変数をPHPの別のクラスで呼び出すにはどうすればよいですか?
- 5. メインアクティビティクラスを介して(別のクラスの)データベースを呼び出すにはどうすればよいですか?
- 6. 1つのCapistranoタスクを別のものから呼び出すにはどうすればよいですか?
- 7. _Layout.cshtmlから特定のクラスの "EditorFor"を呼び出すにはどうすればよいですか?
- 8. 別のマクロ定義の中からAntマクロを呼び出すにはどうすればよいですか?
- 9. フラグメント内の関数を別の関数から呼び出すにはどうすればよいですか?
- 10. SQL Serverの別のストアドプロシージャからストアドプロシージャを呼び出すにはどうすればよいですか?
- 11. レール3の別のアクションから更新アクションを呼び出すにはどうすればよいですか?
- 12. backgroundWorkerの外部クラスから呼び出されたメソッドからフォーム上のメソッドを呼び出すにはどうすればよいですか?
- 13. モジュールから動的クラスの関数を呼び出すにはどうすればよいですか?
- 14. SBTタスクから別のタスクを呼び出すにはどうすればよいですか?
- 15. Varを別のファイルから呼び出すにはどうすればよいですか?
- 16. どのように私はボタンクリックイベントハンドラを別のハンドラから呼び出す/呼び出すのですか? (C#)
- 17. onDraw()を呼び出すたびにAndroidキャンバスが消去されないようにするにはどうすればよいですか?
- 18. 既にロックされたコードブロックをクラスから呼び出すにはどうすればいいですか?
- 19. 別のクラスから呼び出すメソッド
- 20. c#他のプロジェクトからクラスを呼び出すにはどうすればいいですか?
- 21. 別のビュー/ページから呼び出すときにAJAX呼び出しターゲットを変更するにはどうすればよいですか?
- 22. オブジェクトのカスタムメソッドを呼び出すにはどうすればよいですか?
- 23. ImageList.Images.Clear()を別のスレッドからどのように呼び出すのですか?
- 24. メインランチャーアクティビティーを別のアクティビティーからどのように呼び出すのですか?
- 25. ベースクラスオブジェクトでサブクラスメソッドを呼び出すにはどうすればよいですか?
- 26. MVC4でカスタムモデルバインダーを呼び出すにはどうすればよいですか?
- 27. MVCでコントローラアクションを呼び出すにはどうすればよいですか?
- 28. ムービークリップをランダムに呼び出すにはどうすればよいですか?
- 29. 呼び出し元スレッドでインターフェイスコールバックを呼び出すにはどうすればよいですか?
- 30. URLをハードコーディングせずに別のプロジェクトでAPIを呼び出すにはどうすればよいですか?
カスタム表示からアクティビティクラスにどのようなメッセージを送信する必要がありますか?一見、無効化呼び出しやキャンバスを送信できないようです。 – user1134179