Обновление:
после прочтения комментария " Я пытаюсь изменить изображение. Если я могу это сделать, мне не нужно перезагружать представление. Условие логическоеповорачиваясь от истинного к ложному", я думаю, что вам нужен просто способ ссылки на виджет из другого класса.Затем достаточно просто изменить изображение с помощью нового setImageResource (RID);
, чтобы обновить экран новым изображением.Вот полный пример этого.Есть класс, который при нажатии на кнопку проверяет, установлен ли флажок или нет.Если это так, то он изменит изображение:
ListViewTest.java
package com.aleadam.test;
import android.app.Activity;
import android.os.Bundle;
import android.widget.ImageView;
import android.widget.LinearLayout;
public class ListViewTest extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
LinearLayout ll = new LinearLayout(this);
ImageView img = new ImageView(this);
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
img.setImageResource(R.drawable.image1);
MyLayout myl = new MyLayout (this);
myl.setImage(img);
ll.addView(img, lp);
ll.addView(myl, lp);
setContentView (ll);
}
}
MyLayout.java
package com.aleadam.test;
import android.content.Context;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.ImageView;
import android.widget.LinearLayout;
public class MyLayout extends LinearLayout {
private ImageView img;
private Button btn;
private CheckBox chkbox;
public MyLayout(Context context) {
super (context);
this.setOrientation(VERTICAL);
btn = new Button (context);
chkbox = new CheckBox (context);
btn.setText("Click");
btn.setOnClickListener(new MyListener());
chkbox.setText("Select");
LayoutParams lp = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
this.addView(btn, lp);
this.addView(chkbox,lp);
}
public void setImage (ImageView view) {
this.img = view;
}
private class MyListener implements OnClickListener {
public void onClick (View v) {
if (chkbox.isChecked()) {
img.setImageResource(R.drawable.image2);
}
}
}
}
Если ваш объект Class2 виден на экране, попробуйте this.getRootView().invalidate();
На странице просмотра View:
Рисунок
Рисунокобрабатывается путем обхода дерева и рендеринга каждого вида, который пересекает недопустимую область.Поскольку дерево обходится по порядку, это означает, что родители будут рисовать раньше (то есть, позади) своих детей, а братья и сестры будут нарисованы в том порядке, в котором они появляются в дереве.Если вы устанавливаете фон для рисования для представления, то представление будет рисовать его для вас перед вызовом его метода onDraw ().
Обратите внимание, что платформа не будет рисовать представления, которые не находятся в недопустимой области.
Чтобы заставить представление рисовать, вызовите invalidate ().
http://developer.android.com/reference/android/view/View.html