Boa Tarde,
Alguém sabe como resolver isso?
Ao clicar em buscar, a lista vem com o mesmo livro em cada busca que faço.
Já verifiquei o retorno do Json e a lista que chega na classe “modelo” está perfeita, porém a atualização não acontece e aparece esse erro
public class ListaLivros extends AppCompatActivity
implements LoaderManager.LoaderCallbacks<List<Livros>> {
private RecyclerView mRecyclerView;
ProgressBar progressBar;
TextView visualizacaoVazia;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_lista_livros);
Toolbar toolbar = findViewById(R.id.tollbar);
setSupportActionBar(toolbar);
getSupportActionBar().setTitle(R.string.label_toolbar_lista_livros);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDisplayShowHomeEnabled(true);
mRecyclerView = findViewById(R.id.recycler);
progressBar = findViewById(R.id.progress_bar);
visualizacaoVazia = findViewById(R.id.visualicao_vazia);
GridLayoutManager gridLayoutManager = new GridLayoutManager(this, 2);
mRecyclerView.setLayoutManager(gridLayoutManager);
verificarConexaoDisponivel();
}
private void verificarConexaoDisponivel() {
ConnectivityManager verificarRede = (ConnectivityManager)
getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo infoRede = verificarRede.getActiveNetworkInfo();
if (infoRede != null && infoRede.isConnected()) {
getLoaderManager().initLoader(0, null, this);
} else {
progressBar.setVisibility(View.GONE);
visualizacaoVazia.setBackgroundResource(R.drawable.background_aviso);
visualizacaoVazia.setText(R.string.aviso_sem_conexao);
}
}
@Override
public Loader<List<Livros>> onCreateLoader(int i, Bundle bundle) {
return new DadosLivrosLoader(this);
}
@Override
public void onLoadFinished(Loader<List<Livros>> loader, List<Livros> livros) {
progressBar.setVisibility(View.GONE);
mRecyclerView.getRecycledViewPool().clear();
if (livros != null && !livros.isEmpty()) {
mRecyclerView.setAdapter(new LivrosAdapter(livros, this));
} else {
visualizacaoVazia.setBackgroundResource(R.drawable.background_aviso);
visualizacaoVazia.setText(R.string.aviso_sem_resultados);
}
}
@Override
public void onLoaderReset(Loader<List<Livros>> loader) {
mRecyclerView.getRecycledViewPool().clear();
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
NavUtils.navigateUpFromSameTask(this);
return true;
}
return super.onOptionsItemSelected(item);
}
}
RecyclerView.ViewHolder
public class LivroViewHolder extends RecyclerView.ViewHolder {
final TextView nomeLivro;
final TextView descricaoLivro;
final TextView autorLivro;
final ImageView imagemLivro;
final TextView linkVenda;
public LivroViewHolder(View itemView) {
super(itemView);
nomeLivro = itemView.findViewById(R.id.nome_livro);
descricaoLivro = itemView.findViewById(R.id.descricao);
autorLivro = itemView.findViewById(R.id.autor);
imagemLivro = itemView.findViewById(R.id.imagem);
linkVenda = itemView.findViewById(R.id.link_venda);
}
}
Adapter
package br.com.android.altech.encontre.recycler;
import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.squareup.picasso.Picasso;
import java.util.List;
import br.com.android.altech.encontre.Livros;
import br.com.android.altech.encontre.R;
class LivrosAdapter extends RecyclerView.Adapter {
private static final String LOG_TAG = LivrosAdapter.class.getSimpleName();
private List<Livros> livros;
private Context context;
public LivrosAdapter(List<Livros> listLivros, Context context) {
this.livros = listLivros;
this.context = context;
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(context).inflate(R.layout.item_livrro,
parent, false);
return new LivroViewHolder(view);
}
@Override
public void onBindViewHolder( RecyclerView.ViewHolder viewHolder, int position) {
LivroViewHolder holder = (LivroViewHolder) viewHolder;
Livros itemLivro = livros.get(position);
holder.nomeLivro.setText(itemLivro.getmNomeLivro());
holder.descricaoLivro.setText(itemLivro.getmDescricao());
holder.autorLivro.setText(itemLivro.getmAutor());
if (itemLivro.getmImagem().trim().isEmpty()) {
holder.imagemLivro.setImageResource(R.drawable.placeholder);
} else {
Picasso.with(context.getApplicationContext()).load(itemLivro.getmImagem())
.resize(200, 280).into(holder.imagemLivro);
}
holder.linkVenda.setText(itemLivro.getmLinkVenda());
}
@Override
public int getItemCount() {
return livros != null ? livros.size() : 0;
}
}