Eu estava desenvolvendo um projeto com base no curso utilizando Fragments e RecyclerView em Java, mas após ainda dá o mesmo erro, alguém saberia oq está errado? Segue o código.
- ListaFragment
public class ListaFragment extends Fragment {
public ListaFragment(){}
private RecyclerView lista;
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View viewLista = inflater.inflate(R.layout.lista_fragment, container, false);
setFragmentLayoutManager(viewLista);
return viewLista;
}
private void setFragmentLayoutManager(View viewLista) {
final FragmentActivity activity = getActivity();
lista = viewLista.findViewById(R.id.lista_pedidos_recyclerview);
lista.setLayoutManager(new LinearLayoutManager(activity));
}
}
* ListaAdapter
public class ListaAdapter extends RecyclerView.Adapter {
private List<Pedido> pedidos = new ArrayList<>();
private Context context;
public ListaAdapter(Context context){ this.context = context; }
@NonNull
@Override
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
getInflateView(parent);
ListaProdutosViewHolder holder = new ListaProdutosViewHolder(parent);
return holder;
}
@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
ListaProdutosViewHolder meuHolder = (ListaProdutosViewHolder) holder;
Pedido p1 = pedidos.get(position);
bindElementos((ListaProdutosViewHolder) holder, p1);
}
private void bindElementos(ListaProdutosViewHolder holder, Pedido p1) {
holder.nome.setText(p1.getNomeCliente());
holder.descricao.setText(p1.getDescricaoPedido());
holder.dataHorario.setText(p1.getDataAgendada() + " - " + p1.getHorarioAgendado());
}
@Override
public long getItemId(int i) { return pedidos.get(i).getPedidoId(); }
@Override
public int getItemCount() {
return pedidos.size();
}
private View getInflateView(ViewGroup viewGroup) {
return LayoutInflater
.from(this.context)
.inflate(R.layout.item_lista_pedidos, viewGroup, false);
}
public void remove(Pedido pedido){
//melhorar depois
if(pedidos.contains(pedido)){
int posicaoParaRemocao = pedidos.indexOf(pedido);
pedidos.remove(posicaoParaRemocao);
}
notifyDataSetChanged();
}
public void insere(Pedido pedido){
pedidos.add(pedido);
}
public void atualizaLista(List<Pedido> meusPedidos){
this.pedidos.clear();
this.pedidos.addAll(meusPedidos);
}
}
* ListaViewHolder
public class ListaProdutosViewHolder extends RecyclerView.ViewHolder {
final TextView nome, descricao, dataHorario;
public ListaProdutosViewHolder(@NonNull View itemView) {
super(itemView);
this.nome = itemView.findViewById(R.id.item_nome_cliente);
this.descricao = itemView.findViewById(R.id.item_descricao_pedido);
this.dataHorario = itemView.findViewById(R.id.item_data_hora);
}
}
* activityMainLista
public class ListaMainActivity extends AppCompatActivity {
ListaProdutosView view = new ListaProdutosView(this);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main_lista);
if(savedInstanceState == null){
getSupportFragmentManager()
.beginTransaction()
.add(R.id.fragment_main, new ListaFragment(), "lista_pedidos")
.commit();
}
}
}