<dependency>
<groupId>com.github.bumptech.glide</groupId>
<artifactId>multitype</artifactId>
<version>4.0.0</version>
</dependency>
import com.bumptech.glide.multitype.MultiTypeAdapter;
public class DataProcessor {
public static void processData(Object data) {
MultiTypeAdapter multiTypeAdapter = new MultiTypeAdapter();
multiTypeAdapter.register(Person.class, new PersonProcessor());
multiTypeAdapter.setItems(Collections.singletonList(data));
multiTypeAdapter.notifyDataSetChanged();
}
}
import android.view.LayoutInflater;
import android.view.ViewGroup;
import android.widget.TextView;
import com.bumptech.glide.DataResource;
import com.bumptech.glide.RequestBuilder;
import com.bumptech.glide.RequestManager;
import com.bumptech.glide.RequestOptions;
import com.bumptech.glide.integration.recyclerview.RecyclerViewPreloader;
import com.bumptech.glide.load.engine.DiskCacheStrategy;
import com.bumptech.glide.load.engine.Initializable;
import com.bumptech.glide.signature.EmptySignature;
import com.bumptech.glide.util.VersionSafeCallbacks;
import com.bumptech.glide.util.ViewPreloadSizeProvider;
public class PersonProcessor implements MultiTypeAdapter.Binder<Person, PersonViewHolder> {
@Override
public PersonViewHolder createViewHolder(LayoutInflater inflater, ViewGroup parent) {
return new PersonViewHolder(inflater.inflate(R.layout.item_person, parent, false));
}
@Override
public void bind(PersonViewHolder holder, Person person) {
holder.setName(person.getName());
}
}
public class PersonViewHolder extends RecyclerView.ViewHolder {
private TextView nameTextView;
public PersonViewHolder(View itemView) {
super(itemView);
nameTextView = itemView.findViewById(R.id.nameTextView);
}
public void setName(String name) {
nameTextView.setText(name);
}
}
Person person = new Person("John");
DataProcessor.processData(person);