第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

解析json后無法在RecyclerView上顯示int或double

解析json后無法在RecyclerView上顯示int或double

紅顏莎娜 2021-10-20 15:06:28
當我只顯示字符串數(shù)據(jù)時,它似乎顯示正常,但是當我嘗試顯示 int 或 double 時,RecyclerView 不會填充。我從 Google 地方 API JSON 中提取。我想也許這就是我使用我的onBindViewHolder()? 謝謝// MainActivityprivate void getJson() {    String URL = https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=40.7085,-74.003124&opennow&radius=5000&type=restaurant&key=    JsonObjectRequest root = new JsonObjectRequest(Request.Method.GET, URL, null, new Response.Listener<JSONObject>() {        @Override        public void onResponse(JSONObject response) {            try {                JSONArray results = response.getJSONArray("results");                Log.d("RESULTS", String.valueOf(results));                for(int i = 0; i<results.length(); i++) {                    JSONObject resultsObj = results.getJSONObject(i);                    mImageUrls.add(resultsObj.getString("icon"));                    mTitle.add(resultsObj.getString("name"));                    //mRating.add(resultsObj.getDouble("rating"));                    mPriceLevel.add(resultsObj.getInt("price_level"));                }                getRecyclerView();            } catch (JSONException e) {                e.printStackTrace();            }        }    },new Response.ErrorListener() {        @Override        public void onErrorResponse(VolleyError error) {        }    });    mRequestQueue.add(root);}private void getRecyclerView() {    // LinearLayoutManager    recyclerView = findViewById(R.id.recyclerView);    adapter = new RecyclerViewAdapter(mImageUrls, mTitle, mPriceLevel, this);    recyclerView.setAdapter(adapter);    recyclerView.setLayoutManager(new LinearLayoutManager(this));    recyclerView.setHasFixedSize(true);}而RecyclerViewAdapter班級是。
查看完整描述

3 回答

?
冉冉說

TA貢獻1877條經(jīng)驗 獲得超1個贊

這樣做的原因是您沒有將 Double 轉(zhuǎn)換為 String 將此行更改holder.rating.setText(rRatings.get(position));holder.rating.setText(String.valueOf(rRatings.get(position)));

查看完整回答
反對 回復(fù) 2021-10-20
?
偶然的你

TA貢獻1841條經(jīng)驗 獲得超3個贊

首先,您應(yīng)該檢查您獲得的評級是否為雙倍值??赡苁窃谶@一行之后拋出異常

mRating.add(resultsObj.getDouble("rating"))

同樣,@hooray_todd siggested textview 只采用字符串值,因此您必須將數(shù)據(jù)更改為字符串。


查看完整回答
反對 回復(fù) 2021-10-20
?
繁花如伊

TA貢獻2012條經(jīng)驗 獲得超12個贊

我建議您創(chuàng)建一個包含所有必要參數(shù)的對象,然后將該對象的單個列表傳遞給RecyclerViewAdapter.


public class MapElement {

    public String name;

    public String imageUrl;

    public Double rating;

    public Integer price;

}

然后ArrayList在您從getJson函數(shù)調(diào)用中獲得響應(yīng)時創(chuàng)建此對象的一個?,F(xiàn)在在您的適配器中只需使用單個MapElement對象列表來顯示那里的數(shù)據(jù)。


修改后的適配器應(yīng)如下所示。


public class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerViewAdapter.ViewHolder>{


    private static final String TAG = "RecyclerViewAdapter";


    private ArrayList<MapElement> elements = new ArrayList<>();


    private Context mContext;


    public RecyclerViewAdapter(ArrayList<MapElement> elements, Context context) {

        this.elements = elements;

        mContext = context;

    }


    @NonNull

    @Override

    public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {

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

        ViewHolder holder = new ViewHolder(view);

        return holder;

    }


    @Override

    public void onBindViewHolder(@NonNull ViewHolder holder, final int position) {

        Glide.with(mContext).asBitmap().load(rImageUrls.get(position)).into(holder.image);

        holder.name.setText(elements.get(position).name);

        holder.rating.setText(elements.get(position).rating);

        holder.priceLevel.setText(elements.get(position).price);


        holder.parentLayout.setOnClickListener(new View.OnClickListener() {

            @Override

            public void onClick(View v) {

                Log.d(TAG, "onClick: clicked on an image: " + rNames.get(position));

                Toast.makeText(mContext, elements.get(position).name, Toast.LENGTH_SHORT).show();

            }

        });

    }


    @Override

    public int getItemCount() {

        return elements.size();

    }


    public class ViewHolder extends RecyclerView.ViewHolder{


        ImageView image;

        TextView name;

        TextView rating;

        TextView priceLevel;

        TextView address;

        RelativeLayout parentLayout;


        public ViewHolder(View itemView) {

            super(itemView);

            image = (ImageView) itemView.findViewById(R.id.image);

            name = (TextView) itemView.findViewById(R.id.title);

            rating = itemView.findViewById(R.id.rating);

            priceLevel = (TextView) itemView.findViewById(R.id.priceLevel);


            parentLayout = itemView.findViewById(R.id.parentLayout);

        }

    }

}


查看完整回答
反對 回復(fù) 2021-10-20
  • 3 回答
  • 0 關(guān)注
  • 258 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號