1
votes

La vue du recycleur ne montre rien

J'ai vérifié plusieurs fois mais je ne comprends pas pourquoi n'affiche pas l'élément il montre juste l'espace vide qui était pour la vue Recycler J'ai utilisé la méthode du journal partout et tout est normal dans le journal mais je ne peux pas obtenir résultat c'est mon activité principale que j'ai appelée adaptateur et y ai construit ma liste de tableaux et j'ai appelé 5 élément

public class OrderViewHolder extends RecyclerView.ViewHolder {
    public TextView textView;
    public CheckBox Selected;
    public OrderViewHolder(View itemView) {
        super(itemView);
        textView=itemView.findViewById(R.id.txt_order);
        Selected=itemView.findViewById(R.id.chk_selected);
    }
}

c'est mon modèle Je construis un modèle dans cette classe et le setter et le getter sont créés et quand je consigne ces variables, elles sont complètes et correctes

public class OrderAdapter extends RecyclerView.Adapter<OrderViewHolder> {

    private Context context;
    private ArrayList<Orders> orders;

    public OrderAdapter(Context context, ArrayList<Orders> orders) {
        this.context=context;
        this.orders=orders;
    }


    @Override
    public OrderViewHolder onCreateViewHolder( ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.ordercity,null);
        OrderViewHolder orderViewHolder =new OrderViewHolder(view);
        return orderViewHolder;
    }

    @Override
    public void onBindViewHolder( OrderViewHolder holder, int position) {
        Orders order = orders.get(position);

        holder.textView.setText("set text ");
    }

    @Override
    public int getItemCount() {
        Log.i("MainActtivity","value"+ orders.size());
        return (orders == null ? 0 : orders.size());
    }
}

c'est mon adaptateur

public class Orders {
    private int kind,count ;
    private String address;

    public Orders() {
    }

    public int getKind() {
        return kind;
    }

    public void setKind(int kind) {
        this.kind = kind;
    }

    public int getCount() {
        return count;
    }

    public void setCount(int count) {
        this.count = count;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public Orders(int kind, int count, String address) {
        this.kind = kind;
        this.count = count;
        this.address = address;

    }
}

et c'est mon détenteur de vue

public class MainActivity extends AppCompatActivity   {
    private RecyclerView recyclerView ;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        interviews();
    }

    private void interviews() {
        recyclerView =findViewById(R.id.rcl_orders);

        recyclerView.setLayoutManager(new LinearLayoutManager(this));

        OrderAdapter orderAdapter =new OrderAdapter(this,getOrders());
        recyclerView.setAdapter(orderAdapter);
    }

    private ArrayList<Orders> getOrders(){
        ArrayList<Orders> orders = new ArrayList<>();
        orders.add(new Orders(1,1," NewYork City"));
        orders.add(new Orders(2,2,"Masochist"));
        orders.add(new Orders(3,1,"San francisco"));
        orders.add(new Orders(4,5,"pennsylvania"));
        orders.add(new Orders(5,3,"LosAngeles"));

        return orders;
    }

}

veuillez m'aider !!!


1 commentaires

pouvez-vous afficher votre ressource de mise en page R.layout.ordercity ?


3 Réponses :


0
votes

Mettez à jour votre adaptateur comme ci-dessous

@Override
    public int getItemCount() {
        Log.i("MainActtivity","value"+ orders.size());
        return orders.size();
    }


0 commentaires

0
votes

XXX

@Override
        public OrderViewHolder onCreateViewHolder( ViewGroup parent, int viewType) {
    View itemView = LayoutInflater.from(parent.getContext())
                    .inflate(R.layout.ordercity, parent, false);

            return new MyViewHolder(itemView);
}



 @Override
    public int getItemCount() {
        Log.i("MainActtivity","value"+ orders.size());
        return orders.size());
    }


0 commentaires

0
votes

Dans votre onCreateViewHolder():

Modifiez ceci:

View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.ordercity , parent , false);

À ceci:

View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.ordercity,null);


3 commentaires

ça marche mais son show 5 recyclerview au lieu de 5 item dans recyclerview


schemas.android.com/apk/res/android " xmlns: app = " schemas.android.com/apk/res-auto "xmlns: tools =" schemas.android. com / tools "android: layout_width =" match_parent "android: layout_height =" match_parent "tools: context =". activities.MainActivity ">


Essayez de rendre la hauteur de vue du recycleur match_parent ? À part cela, votre problème est résolu pour ne pas afficher les éléments. Vous pouvez poser une nouvelle question pour d'autres questions.