【问题标题】:The data from list view is not able to set in recycler view列表视图中的数据无法在回收站视图中设置
【发布时间】:2020-09-29 16:16:02
【问题描述】:

在这里,我首先将我的所有数据存储到 Sqlite,然后我想在回收站视图中显示来自 sqlite 的所有数据,所以我在这里使用 Fragment,其中在调试从 sqlite 获取数据时有一个回收站视图,但是当它在适配器中显示 mList 大小为 0 不知道为什么,但是在 Sqlite m 的 getAllData 方法中,mList 大小为 3,但 m 也无法查看任何数据。

我的适配器类

public class ItemAdp extends RecyclerView.Adapter<ItemAdp.MyViewHolder> {

    List<ProductItem> mList;
    Context context;
    String Base_URL;

    public ItemAdp(List<ProductItem> mList, Context context) {
        this.mList = mList;
        this.context = context;
    }

public class MyViewHolder extends RecyclerView.ViewHolder {

    ImageView img_icon;
    TextView txtTitle, group_Name;


    public MyViewHolder(@NonNull View itemView) {
        super(itemView);
        img_icon=itemView.findViewById(R.id.img_icon);
        txtTitle=itemView.findViewById(R.id.txtTitle);
        group_Name=itemView.findViewById(R.id.group_Name);
    }
}

@NonNull
@Override
public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
    LayoutInflater layoutInflater = LayoutInflater.from(context);
    View view = layoutInflater.inflate(R.layout.item_custome, parent, false);

    return new MyViewHolder(view);
}

@Override
public void onBindViewHolder(@NonNull MyViewHolder holder, int position) {
    ProductItem datum = mList.get(position);
  //  Glide.with(context).load(Base_URL + "/" + datum.getArticleImage()).thumbnail(Glide.with(context).load(R.drawable.ezgifresize)).into(holder.img_icon);
    holder.txtTitle.setText("" + datum.getArticleName());
    holder.group_Name.setText("" + datum.getGroupName());

}

@Override
public int getItemCount() {
    return mList.size();
}

我的片段

public class ItemListFragment extends Fragment {
    RecyclerView myRecyclerView;
    List<ProductItem> mlist;
    MobexInAppDb mobexInAppDb;
    ItemAdp itemAdp;

    public ItemListFragment() {

    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        View view = inflater.inflate(R.layout.fragment_home, container, false);
        mobexInAppDb = new MobexInAppDb(getContext());
        myRecyclerView = view.findViewById(R.id.my_recycler_view);
        itemAdp=new ItemAdp(mlist,getContext());
        myRecyclerView.setAdapter(itemAdp);
        myRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));

        return view;
    }

    @Override
    public void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        mobexInAppDb = new MobexInAppDb(getContext());
        mlist = new ArrayList<>();
        mobexInAppDb.getAllData();

    }
}

我从 Sqlite 获取数据的方法

public List<ProductItem> getAllData() {
        List<ProductItem> productItems = new ArrayList<>();
        Cursor cursor = null;
        SQLiteDatabase database = this.getReadableDatabase();
        cursor = database.rawQuery("SELECT * FROM ProductNew", null);
        if (cursor.getCount() != 0) {
            while (cursor.moveToNext()) {
                ProductItem productItem = new ProductItem(cursor.getString(1), cursor.getString(2), cursor.getString(4), cursor.getString(5), cursor.getString(6), cursor.getString(8));
                productItems.add(productItem);
            }
        }
        cursor.close();
        return productItems;
    }

【问题讨论】:

    标签: android android-studio android-fragments android-recyclerview


    【解决方案1】:

    那是因为您没有将数据分配给您的 arraylist(mlist)。

    在你的 onCreate 方法中,复制这个。

    @Override
        public void onCreate(@Nullable Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            mobexInAppDb = new MobexInAppDb(getContext());
            mlist = new ArrayList<>();
            // pass result to mlist
            mlist = mobexInAppDb.getAllData();
    
        }
    

    【讨论】:

      猜你喜欢
      • 2020-10-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多