public class ImageActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ImagePresentationModel presentationModel = new ImagePresentationModel();
initializeContentView(R.layout.activity_image, presentationModel);
}
private void initializeContentView(int layoutId, Object presentationModel) {
ViewBinder viewBinder = createViewBinder();
View rootView = viewBinder.inflateAndBind(layoutId, presentationModel);
setContentView(rootView);
}
private ViewBinder createViewBinder() {
BinderFactory binderFactory = new BinderFactoryBuilder().add(
new MylayoutBinding().forView(MyLayout.class)).build();
return binderFactory.createViewBinder(this);
}
}
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:bind="http://robobinding.org/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:ignore="MissingPrefix" >
<com.test.model.MyLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
bind:image="{image}" />
</LinearLayout>
public class MyLayout extends LinearLayout {
private ImageView image;
public MyLayout(Context context, AttributeSet attrs) {
this(context, attrs, R.layout.mylayout);
}
protected MyLayout(Context context, AttributeSet attrs, int layoutId) {
super(context, attrs);
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
inflater.inflate(layoutId, this);
image = (ImageView) findViewById(R.id.image);
}
@SuppressLint("NewApi")
public void setImage(int drawable) {
image.setImageResource(drawable);
}
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<ImageView
android:id="@+id/image"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
@org.robobinding.annotation.PresentationModel
public class ImagePresentationModel implements
HasPresentationModelChangeSupport {
private PresentationModelChangeSupport changeSupport;
public ImagePresentationModel() {
changeSupport = new PresentationModelChangeSupport(this);
}
@Override
public PresentationModelChangeSupport getPresentationModelChangeSupport() {
return changeSupport;
}
public int getImage() {
return R.drawable.test;
}
public void changeImage() {
changeSupport.firePropertyChange("image1");
}
}