亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

RecyclerAdapater getItemCount 崩潰

RecyclerAdapater getItemCount 崩潰

千萬里不及你 2021-12-10 15:11:00
我有以下問題,其中我的應用程序在進入下一個活動時不幸停止。這是罪魁禍首:   public class RecyclerAdapter extends RecyclerView.Adapter<RecyclerAdapter.RecyclerHolder> {        ArrayList<Theme> themes;        private LayoutInflater mInflater;       public RecyclerAdapter(Context context, ArrayList<Theme> themes) {            mInflater = LayoutInflater.from(context);            this.themes = themes;       }        public class RecyclerHolder extends RecyclerView.ViewHolder {            ImageView imageView;            TextView name,price;            public RecyclerHolder(View view) {                super(view);                imageView = (ImageView)view.findViewById(R.id.demo);                name = (TextView)view.findViewById(R.id.name);                price = (TextView)view.findViewById(R.id.price);            }        }        @NonNull        @Override        public RecyclerHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {            View view = mInflater.inflate(R.layout.recycler_list, viewGroup, false);            return new RecyclerHolder(view);        }        @Override        public void onBindViewHolder(@NonNull RecyclerHolder viewHolder, int i) {           Log.i("log", themes.get(i).getName());           viewHolder.imageView.setImageResource(themes.get(i).getDrawableCover());           viewHolder.name.setText(themes.get(i).getName());           viewHolder.price.setText(themes.get(i).getPrice());        }        @Override        public int getItemCount() {           return themes.size();        }    }問題似乎出在getItemCount()方法上。當我嘗試返回themes.size()應用程序崩潰時。當我return 0改為時,沒有任何顯示。這里似乎有什么問題?我是 android 新手,所以請正確解釋。
查看完整描述

3 回答

?
紅糖糍粑

TA貢獻1815條經驗 獲得超6個贊

你想檢查你的數據是否null在getItemCount()方法中,這樣你就可以確保你的應用程序永遠不會在那里崩潰:


爪哇:


@Override

public int getItemCount() {

   return themes != null ? themes.size() : 0;

}

科特林:


override fun getItemCount(): Int = themes?.size ?: 0


查看完整回答
反對 回復 2021-12-10
?
慕勒3428872

TA貢獻1848條經驗 獲得超6個贊

我找到了問題所在。這里的這個是viewHolder.price.setText(themes.get(i).getPrice());我調用setText()TextView 方法并傳入一個int值的罪魁禍首,這就是它拋出ResourceNotFound異常的原因。我已經通過打電話Integer.toString()感謝大家修復了它。


查看完整回答
反對 回復 2021-12-10
?
狐的傳說

TA貢獻1804條經驗 獲得超3個贊

我想也許你必須初始化你的 ArrayList。

你可以這樣初始化:

    ArrayList<Theme> themes = new ArrayList<Theme>();

我不是 100% 確定。但試試吧。


查看完整回答
反對 回復 2021-12-10
  • 3 回答
  • 0 關注
  • 203 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號