Step 1. Add the JitPack repository to your build file
Add it in your root settings.gradle at the end of repositories:
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
mavenCentral()
maven { url 'https://jitpack.io' }
}
}
Add it in your settings.gradle.kts at the end of repositories:
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
mavenCentral()
maven { url = uri("https://jitpack.io") }
}
}
Add to pom.xml
<repositories>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
Add it in your build.sbt at the end of resolvers:
resolvers += "jitpack" at "https://jitpack.io"
Add it in your project.clj at the end of repositories:
:repositories [["jitpack" "https://jitpack.io"]]
Step 2. Add the dependency
dependencies {
implementation 'com.github.uharris6:Generic-Simple-Adapter:0.0.6'
}
dependencies {
implementation("com.github.uharris6:Generic-Simple-Adapter:0.0.6")
}
<dependency>
<groupId>com.github.uharris6</groupId>
<artifactId>Generic-Simple-Adapter</artifactId>
<version>0.0.6</version>
</dependency>
libraryDependencies += "com.github.uharris6" % "Generic-Simple-Adapter" % "0.0.6"
:dependencies [[com.github.uharris6/Generic-Simple-Adapter "0.0.6"]]
Generic adapter for RecyclerView, ListView, GridView and Spinner.
Step 1. Add the JitPack repository to your build file
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
Step 2. Add the dependency
dependencies {
compile 'com.github.uharris6:Generic-Simple-Adapter:0.0.6'
}
Generic Simple Adapter provides adapters and view holders for differents Android views
.
Create a class that extends from BaseRecyclerViewHolder
.
public class YourViewHolder extends BaseRecyclerViewHolder<YourModel> {
@BindView(R.id.movie_image)
ImageView mMovieImage;
@BindView(R.id.movie_tile)
TextView mMovieTitle;
@BindView(R.id.movie_year)
TextView mMovieYear;
Context context;
@Override
protected void configureItem(YourModel item) {
Glide.with(context).load(item.getPoster()).into(mMovieImage);
mMovieTitle.setText(item.getTitle());
mMovieYear.setText(item.getYear());
}
public YourViewHolder(View itemView, Context context) {
super(itemView);
ButterKnife.bind(this, itemView);
this.context = context;
}
}
Now instantiate BaseRecyclerViewAdapter
using the previous BaseRecyclerViewHolder
implementation class and use it as a normal adapter
.
adapter = new BaseRecyclerViewAdapter<YourModel, YourViewHolder>(this) {
@Override
protected YourViewHolder onCreateItemView(LayoutInflater inflater, ViewGroup parent) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.movie_item,
parent,
false);
return new YourViewHolder(view, parent.getContext());
}
};
moviesRecyclerView.setAdapter(adapter);
Create a class which extends from GenericBaseHolder
for dropdownView and the normal view or create two different.
public class YourHolder extends GenericBaseHolder<YourModel> {
@BindView(R.id.movie_image)
ImageView mMovieImage;
@BindView(R.id.movie_tile)
TextView mMovieTitle;
@BindView(R.id.movie_year)
TextView mMovieYear;
View view;
public YourHolder(View convertView) {
super(convertView);
this.view = convertView;
ButterKnife.bind(this, convertView);
}
@Override
protected void configureItem(YourModel item) {
Glide.with(view.getContext()).load(item.getPoster()).into(mMovieImage);
mMovieTitle.setText(item.getTitle());
mMovieYear.setText(item.getYear());
}
}
Now instantiate SpinnerAdapter
using the previous GenericBaseHolder
implementation class and use it as a normal adapter
.
SpinnerAdapter<YourModel, YourDropdownHolder, YourHolder> adapter = new
SpinnerAdapter<YourModel, YourDropdownHolder,
YourHolder>(context, list, R
.layout
.dropdown_item, R.layout.item) {
@Override
protected YourDropdownHolder onCreateView(View convertView) {
return new YourDropdownHolder(convertView);
}
@Override
protected YourHolder onCreateDropdownView(View convertView) {
return new YourHolder(convertView);
}
};
spinnerMovie.setAdapter(adapter);
Create a class which extends GenericBaseHolder
.
public class YourHolder extends GenericBaseHolder<YourModel> {
@BindView(R.id.movie_image)
ImageView mMovieImage;
@BindView(R.id.movie_tile)
TextView mMovieTitle;
@BindView(R.id.movie_year)
TextView mMovieYear;
View view;
public YourHolder(View convertView) {
super(convertView);
this.view = convertView;
ButterKnife.bind(this, convertView);
}
@Override
protected void configureItem(YourModel item) {
Glide.with(view.getContext()).load(item.getPoster()).into(mMovieImage);
mMovieTitle.setText(item.getTitle());
mMovieYear.setText(item.getYear());
}
}
Now instantiate GenericBaseAdapter
using the previous GenericBaseHolder
implementation class and use it as a normal adapter
.
adapter = new GenericBaseAdapter<Movie, MovieHolder>(this, R.layout.movie_item) {
@Override
protected MovieHolder onCreateItemView(View convertView) {
return new MovieHolder(convertView);
}
};
listView.setAdapter(adapter);