Android 應用程序:IndexOutOfBoundsException 我的應用程序在運行時崩潰

納比爾·納扎爾

這是我在運行應用程序時遇到的錯誤,如果需要任何其他詳細信息,我可以提供。

E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.groceryshoppingsystem, PID: 13531 java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 at java.util.ArrayList.get(ArrayList.java:437) at com. example.groceryshoppingsystem.Adapters.GridproductAdapter.getView(GridproductAdapter.java:65)

我的適配器代碼:

package com.example.groceryshoppingsystem.Adapters;
        
        import android.annotation.SuppressLint;
        import android.content.Context;
        import android.content.Intent;
        import android.view.LayoutInflater;
        import android.view.View;
        import android.view.ViewGroup;
        import android.widget.BaseAdapter;
        import android.widget.ImageView;
        import android.widget.TextView;
        import androidx.constraintlayout.widget.ConstraintLayout;
        import com.example.groceryshoppingsystem.Model.HorizontalProductModel;
        import com.example.groceryshoppingsystem.Model.favouritesClass;
        import com.example.groceryshoppingsystem.R;
        import com.example.groceryshoppingsystem.UI.ProductInfoActivity;
        import com.google.firebase.auth.FirebaseAuth;
        import com.google.firebase.database.DatabaseReference;
        import com.google.firebase.database.FirebaseDatabase;
        import com.squareup.picasso.Picasso;
        
        
        import java.util.List;
        
        public class GridproductAdapter extends BaseAdapter {
            List<HorizontalProductModel> horizontalProductModelList;
            ImageView productImage;
            TextView producttitle, productprice;
            ImageView checkBox;
            List<favouritesClass> favourites;
            ConstraintLayout Container;
            Context context;
        
            public GridproductAdapter(List<HorizontalProductModel> horizontalProductModelList, List<favouritesClass> favourites, Context context) {
                this.horizontalProductModelList = horizontalProductModelList;
                this.favourites = favourites;
                this.context = context;
            }
        
            @Override
            public int getCount() {
                return 4;
            }
        
            @Override
            public Object getItem(int position) {
                return null;
            }
        
            @Override
            public long getItemId(int position) {
                return 0;
            }
        
        
            @Override
            public View getView(final int position, View convertView, ViewGroup parent) {
        
                View view;
                if (convertView == null) {
                    view = LayoutInflater.from(parent.getContext()).inflate(R.layout.horizontal_item, null);
                    Container = view.findViewById(R.id.MainProductID);
                    productImage = view.findViewById(R.id.item_image);
                    producttitle = view.findViewById(R.id.item_title);
                    productprice = view.findViewById(R.id.item_Price);
                    checkBox = view.findViewById(R.id.check_box);
                    Picasso.get().load(horizontalProductModelList.get(position).getProductimage()).into(productImage);
                    producttitle.setText(horizontalProductModelList.get(position).getProducttitle());
                    productprice.setText("EGP "+horizontalProductModelList.get(position).getProductprice());
                    boolean isfavourite = false;
                    for (int i = 0; i < favourites.size(); i++) {
                        if (horizontalProductModelList.get(position).getProducttitle().equals(favourites.get(i).getProducttitle())) {
                            isfavourite = true;
                            horizontalProductModelList.get(position).setChecked(true);
                            break;
                        }
                    }
                    if (isfavourite) {
                        checkBox.setImageResource(R.drawable.ic_baseline_favorite_24);
                    } else
                        checkBox.setImageResource(R.drawable.ic_baseline_favorite_shadow_24);
                } else {
                    view = convertView;
                }
                checkBox.setOnClickListener(new View.OnClickListener() {
        
                    @Override
                    public void onClick(View v) {
                        DatabaseReference ref = FirebaseDatabase.getInstance().getReference("favourites")
                                .child(FirebaseAuth.getInstance().getCurrentUser().getUid());
                        HorizontalProductModel hz = horizontalProductModelList.get(position);
                        if (!(horizontalProductModelList.get(position).isChecked())) {
                            horizontalProductModelList.get(position).setChecked(true);
                            checkBox = v.findViewById(R.id.check_box);
                            checkBox.setImageResource(R.drawable.ic_baseline_favorite_24);
                            ref.child(horizontalProductModelList.get(position).getProducttitle()).setValue(hz);
                        } else {
                            horizontalProductModelList.get(position).setChecked(false);
                            checkBox = v.findViewById(R.id.check_box);
                            checkBox.setImageResource(R.drawable.ic_baseline_favorite_shadow_24);
                            ref.child(horizontalProductModelList.get(position).getProducttitle()).setValue(null);
                        }
                    }
                });
        
                Container.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View view) {
                        Intent intent = new Intent(context, ProductInfoActivity.class);
                        intent.putExtra("Product Name",horizontalProductModelList.get(position).getProducttitle());
                        intent.putExtra("Product Price",horizontalProductModelList.get(position).getProductprice());
                        intent.putExtra("Product Image",horizontalProductModelList.get(position).getProductimage());
                        intent.putExtra("Product ExpiryDate",horizontalProductModelList.get(position).getExpiredDate());
                        intent.putExtra("Product IsFavorite",String.valueOf(horizontalProductModelList.get(position).isChecked()));
                        intent.putExtra("Is Offered","no");
        
                        context.startActivity(intent);
                    }
                });
        
                return view;
            }
        
        }
甘尼什MB
@Override
public int getCount() {
    return horizontalProductModelList.size();
}

你可以直接給出列表的大小

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Flutter 應用程序可以在 Xcode 中運行,而不能在 Android Studio 中運行

我的 android 應用程序 (java) 在執行任務後立即崩潰

應用程序崩潰,驗證jwt token後

如果其中一個線程崩潰,則防止應用程序崩潰

內置應用程序在 Android 設備上運行時不起作用

當我添加“樣式”時,Android TextInputLayout 應用程序崩潰

Flutter:應用程序在 Android 上停止運行 whit 圖像庫

我的 android studio 代碼構建成功但輸出應用程序崩潰

android studio 不在 iso 模擬器上運行我的應用程序

DirectX 12 應用程序在 Windows 11 中崩潰

使用 OleDbConnection.Open() 時 Access-DB(.accdb) 訪問崩潰應用程序

我的 android 應用程序在我的虛擬設備上運行,但不在我的物理 android 設備上

單擊android中的後退按鈕時應用程序崩潰

Android 12 Nearby Devices 權限使應用程序崩潰

如何修復 java.lang.NullPointerException 後崩潰的 android 應用程序

當房間數據庫為空並嘗試運行此查詢時,應用程序崩潰並顯示空異常

運行應用程序時在燒瓶中出錯

setAdapter() 使 android studio 中的 android 應用程序崩潰

訪問 Assimp 紋理坐標數據時 OpenGL 應用程序崩潰

當我從圖庫中選擇圖像時應用程序崩潰

確定 WallpaperService 是由應用程序還是由 Android 運行

當錯誤的參數傳遞給 API 時,NodeJS 應用程序崩潰

Android:當我嘗試從意圖檢索數據時應用程序崩潰

為什麼當我將數據發送到我的 firebase 時我的 android studio 應用程序崩潰

為什麼更改 AppTheme 時我的應用程序崩潰

在 Honor 50 上使用 Scan Kit 時應用程序崩潰

為什麼按下按鈕會使我的應用程序崩潰?

從事 Android 音樂播放器項目,遇到了我的應用程序在啟動時崩潰的問題:

當我嘗試從 Cloud Firestore 讀取數據時應用程序崩潰