レイアウトを変更したいクラスにデータを送信しています。次の方法でデータを送信します。
while(接続){
//receive data through socket
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
while ( (line = in.readLine()) != null){
String [] aarray = line.split("[^\\d]+");
if (aarray != null){
for(int i = 0; i < aarray.length; i++){
number = Integer.parseInt(aarray[i]);
}
}
Log.d(TAG, "Line " + String.valueOf(line));
myCompassView.updateDirection(number);
updateDirection は次の関数を呼び出します。
public void updateDirection(float dir){
direction = dir;
Log.d(main.TAG, "mudou direction " + String.valueOf(direction));
invalidate();
}
そして、このinvalidade()でonDraw(Canvas canvas)関数を再度呼び出すようにしたかったのですが、代わりにアプリケーションがクラッシュしました。
私は問題を理解していませんが、invalidate() は非常に簡単でした。
誰かが私を助けてくれれば、本当に感謝しています。