私のMainActivityのcontentView/Viewは、呼び出した後、どこでもinvalidate()を使用するだけで更新できます。
setContentView(R.layout.activity_main);
ただし、アイテムでダイアログを呼び出す場合は、次を選択します。
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId()){
case R.id.menu_tools:
showDialog();
return true;
...
これを行っても、ダイアログ内のImageViewは更新されません。
public class ToolSettingsDialog extends Dialog {
...
private void updatePreview() {
ImageView image = (ImageView)findViewById(R.id.widthImageView);
Bitmap bitmap = Bitmap.createBitmap(400, 400, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
bitmap.eraseColor(Color.WHITE);
Drawing d = null;
d = box.getDrawing();
s.draw(paint, canvas);
image.setImageBitmap(bitmap);
image.invalidate();
}
私は周りを見回していて、UIスレッドとは異なるスレッドで無効化する方法を理解できないようです。