strings.xmlの中に定義したhelloという名前の文字列を、Messageクラスのコンストラクターで取り出して・・・とやっていますがgetString(リソースID)
はActivicy(の親クラスのContext)のメソッドのようですのでMessageクラスで直接使うことはできないと思います。
MessageクラスをActivityで利用するクラスだと仮定すると、文字列リソースの取得(getString(R.string.hello))はActivityで行ってそれをMessaageクラスのコンストラクターへ渡すなどの方法を採ってはいかがでしょうか。
また、Messageクラスで複数の文字列リソースを使用する必要がある場合はそれら全てをActivity側で取り出してMessageのコンストラクターへ渡すとしてもよいですが、それがわずらわしければいっそActivityのインスタンスそのものをMessageクラスのコンストラクターへ渡してそれを使って次のようにするという手もあるかと思います。
java
1public class Message {
2 private Paint paint = new Paint();
3
4 private int x;
5 private int y;
6 private String hello;
7 private String world;
8
9 public Message(int x, int y, Activity activity) {
10 this.x = x;
11 this.y = y;
12 this.hello = activity.getString(R.string.hello);
13 this.world = activity.getString(R.string.world);
14 }
15
16 public void draw(Canvas canvas) {
17 canvas.drawText(this.hello, this.x, this.y, paint);
18 canvas.drawText(this.world, this.x, this.y + 20, paint);
19 // 単なる例なのでy座標の計算はイイカゲンです
20 }
21}
自分なりにこんなページを参考にしながら考えてみました。不適切な点がありましたらご指摘いただければと思います。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。