回答編集履歴
2
参考urlを追記しました
answer
CHANGED
@@ -10,6 +10,9 @@
|
|
10
10
|
```
|
11
11
|
基本的に、ViewはActivityがなんであるかを知りません。これはインターフェースを考える上で重要ですね。例えばですが、他のActivityからTestViewをもしも使いたくなった時に、TestViewがMainActivityに依存していると実装をやり直さなければなりません。
|
12
12
|
そこで、そもそもとして**Viewの中に特定のActivityを持たせない**のが基本方針になります。
|
13
|
+
参考url: [疎結合って何?](http://blog.codebook-10000.com/entry/20131108/1383907001)
|
14
|
+
> ソフトウェアの拡張性とは「いかに変更に容易に適応できるかどうか」である。
|
15
|
+
依存関係が多いと、あるプログラムの変更が他のプログラムに影響を及ぼし、変更を行うごとに大量のテストが必要になる。
|
13
16
|
|
14
17
|
## 具体的な解決策
|
15
18
|
ではどうすれば良いのでしょうか???
|
@@ -26,6 +29,7 @@
|
|
26
29
|
|
27
30
|
```
|
28
31
|
そして、これを`NextActivity`の側から呼び出します。(Intentの受け取りは他の回答の通りに修正し、受け取れているとします。)
|
32
|
+
参考url: [AndroidのViewに絵を描く](https://qiita.com/nittyan/items/62539b190e4dac89ec71)
|
29
33
|
NextActivity
|
30
34
|
```java
|
31
35
|
@Override
|
1
見出しを加えました。
answer
CHANGED
@@ -1,6 +1,9 @@
|
|
1
|
+
## まずは結論
|
1
2
|
設計を変えた方が良いと思います。
|
3
|
+
TestViewの中にupdateViewのようなメソッドを定義し、その引数にdataを入れて渡してあげます。
|
2
4
|
ActivityやIntentの扱いに関しては他のお二方のおっしゃる通りですので、そちらを参考になさってください。
|
3
5
|
|
6
|
+
## 問題点
|
4
7
|
問題はTestViewの中の以下の部分です。
|
5
8
|
```java
|
6
9
|
canvas.drawLine(ma.data1[0], ma.data1[1], ma.data1[2], 630, paint); //ここがエラー
|
@@ -8,6 +11,7 @@
|
|
8
11
|
基本的に、ViewはActivityがなんであるかを知りません。これはインターフェースを考える上で重要ですね。例えばですが、他のActivityからTestViewをもしも使いたくなった時に、TestViewがMainActivityに依存していると実装をやり直さなければなりません。
|
9
12
|
そこで、そもそもとして**Viewの中に特定のActivityを持たせない**のが基本方針になります。
|
10
13
|
|
14
|
+
## 具体的な解決策
|
11
15
|
ではどうすれば良いのでしょうか???
|
12
16
|
それは、View側にActivityからデータを渡してあげるのです。
|
13
17
|
ここが重要で、質問者様は「ViewからActivityのデータを取りに行く」コードを書いていますが、「ActivityからViewにデータを渡す」のです。
|
@@ -34,8 +38,10 @@
|
|
34
38
|
|
35
39
|
// TestViewのインスタンス取得
|
36
40
|
testView = (TestView) this.findViewById(R.id.test_view);
|
37
|
-
// ここでデータを
|
41
|
+
// ここでデータをTestViewに付与する。
|
38
42
|
testView.updateView(data);
|
39
43
|
}
|
40
44
|
|
41
|
-
```
|
45
|
+
```
|
46
|
+
|
47
|
+
おそらく以上の説明だけだと不明な点も多々あると思うので、その都度質問頂ければと思います。
|