kamran_14 0 ارسال شده در مهر 98 سلام من کدها رو نوشتم ولی با این خطا مواجه میشوم. ایراد کدهای من چی میتونه باشه E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.shop, PID: 3607 android.view.InflateException: Binary XML file line #24: Attempt to invoke virtual method 'boolean java.lang.String.equals(java.lang.Object)' on a null object reference Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.String.equals(java.lang.Object)' on a null object reference at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:761) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:727) at android.view.LayoutInflater.rInflate(LayoutInflater.java:858) at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821) at android.view.LayoutInflater.rInflate(LayoutInflater.java:861) at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821) at android.view.LayoutInflater.inflate(LayoutInflater.java:518) at android.view.LayoutInflater.inflate(LayoutInflater.java:426) at com.example.shop.Adapter.ProductAdapter.onCreateViewHolder(ProductAdapter.java:35) at com.example.shop.Adapter.ProductAdapter.onCreateViewHolder(ProductAdapter.java:19) at androidx.recyclerview.widget.RecyclerView$Adapter.createViewHolder(RecyclerView.java:6794) at androidx.recyclerview.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:5975) at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:5858) at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:5854) at androidx.recyclerview.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:2230) at androidx.recyclerview.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1557) at androidx.recyclerview.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1517) at androidx.recyclerview.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:612) at androidx.recyclerview.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:3924) at androidx.recyclerview.widget.RecyclerView.dispatchLayout(RecyclerView.java:3641) at androidx.recyclerview.widget.RecyclerView.onLayout(RecyclerView.java:4194) at android.view.View.layout(View.java:17637) at android.view.ViewGroup.layout(ViewGroup.java:5575) at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1079) at android.view.View.layout(View.java:17637) at android.view.ViewGroup.layout(ViewGroup.java:5575) at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323) at android.widget.FrameLayout.onLayout(FrameLayout.java:261) at android.view.View.layout(View.java:17637) at android.view.ViewGroup.layout(ViewGroup.java:5575) at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1741) at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1585) at android.widget.LinearLayout.onLayout(LinearLayout.java:1494) at android.view.View.layout(View.java:17637) at android.view.ViewGroup.layout(ViewGroup.java:5575) at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323) at android.widget.FrameLayout.onLayout(FrameLayout.java:261) at android.view.View.layout(View.java:17637) at android.view.ViewGroup.layout(ViewGroup.java:5575) at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1741) at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1585) at android.widget.LinearLayout.onLayout(LinearLayout.java:1494) at android.view.View.layout(View.java:17637) at android.view.ViewGroup.layout(ViewGroup.java:5575) at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323) at android.widget.FrameLayout.onLayout(FrameLayout.java:261) at com.android.internal.policy.DecorView.onLayout(DecorView.java:726) at android.view.View.layout(View.java:17637) at android.view.ViewGroup.layout(ViewGroup.java:5575) at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2346) at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2068) at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1254) at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6337) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:874) at android.view.Choreographer.doCallbacks(Choreographer.java:686) at android.view.Choreographer.doFrame(Choreographer.java:621) at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:860) at android.os.Handler.handleCallback(Handler.java:751) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6119) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776) Application terminated. من در productActivity اینارو نوشتم: package com.example.shop.Adapter; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; import com.example.shop.Models.Products; import com.example.shop.R; import java.util.ArrayList; import java.util.List; public class ProductAdapter extends RecyclerView.Adapter<ProductAdapter.ProductViewHolder>{ private List<Products> products=new ArrayList<Products> ( ); private Context context; public ProductAdapter(List<Products> products, Context context) { this.products = products; this.context = context; } @NonNull @Override public ProductViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { View view=LayoutInflater.from ( parent.getContext () ).inflate ( R.layout.products_list_row,parent,false);//inflater.inflate (R.layout.products_list_row,parent); return new ProductViewHolder(view); } @Override public void onBindViewHolder(@NonNull ProductViewHolder holder, int position) { Products oP=products.get ( position ); holder.txt_priceProduct.setText ( oP.getPriceProduct () ); holder.txt_nameProduct.setText (oP.getNameProduct () ); holder.img_imgProduct.setImageDrawable (oP.getImg_product () ); } @Override public int getItemCount() { return products.size (); } public class ProductViewHolder extends RecyclerView.ViewHolder { public ImageView img_imgProduct; public TextView txt_nameProduct; public TextView txt_priceProduct; public ProductViewHolder(@NonNull View itemView) { super ( itemView ); img_imgProduct=itemView.findViewById ( R.id.imgProduct ); txt_nameProduct=itemView.findViewById ( R.id.nameProduct ); txt_priceProduct=itemView.findViewById ( R.id.priceProduct ); } } } و در productModel این کدهارو: package com.example.shop.Models; import android.graphics.drawable.Drawable; public class Products { private Drawable img_product; private String nameProduct; private String priceProduct; public Products(Drawable img_product, String nameProduct, String priceProduct) { this.img_product = img_product; this.nameProduct = nameProduct; this.priceProduct = priceProduct; } public Drawable getImg_product() { return img_product; } public void setImg_product(Drawable img_product) { this.img_product = img_product; } public String getNameProduct() { return nameProduct; } public void setNameProduct(String nameProduct) { this.nameProduct = nameProduct; } public String getPriceProduct() { return priceProduct; } public void setPriceProduct(String priceProduct) { this.priceProduct = priceProduct; } } و در productAdapter این کدها رو: package com.example.shop.Adapter; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; import com.example.shop.Models.Products; import com.example.shop.R; import java.util.ArrayList; import java.util.List; public class ProductAdapter extends RecyclerView.Adapter<ProductAdapter.ProductViewHolder>{ private List<Products> products=new ArrayList<Products> ( ); private Context context; public ProductAdapter(List<Products> products, Context context) { this.products = products; this.context = context; } @NonNull @Override public ProductViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { View view=LayoutInflater.from ( parent.getContext () ).inflate ( R.layout.products_list_row,parent,false);//inflater.inflate (R.layout.products_list_row,parent); return new ProductViewHolder(view); } @Override public void onBindViewHolder(@NonNull ProductViewHolder holder, int position) { Products oP=products.get ( position ); holder.txt_priceProduct.setText ( oP.getPriceProduct () ); holder.txt_nameProduct.setText (oP.getNameProduct () ); holder.img_imgProduct.setImageDrawable (oP.getImg_product () ); } @Override public int getItemCount() { return products.size (); } public class ProductViewHolder extends RecyclerView.ViewHolder { public ImageView img_imgProduct; public TextView txt_nameProduct; public TextView txt_priceProduct; public ProductViewHolder(@NonNull View itemView) { super ( itemView ); img_imgProduct=itemView.findViewById ( R.id.imgProduct ); txt_nameProduct=itemView.findViewById ( R.id.nameProduct ); txt_priceProduct=itemView.findViewById ( R.id.priceProduct ); } } } یک روزه که کلا من روی پیدا کردن خطا گذاشتم اما پیدا نکردم. لطفا کمکم کنید نقل قول به اشتراک گذاری این ارسال لینک به ارسال به اشتراک گذاری در سایت های دیگر