【问题标题】:Implementing if statement directly to Arraylist [duplicate]将 if 语句直接实现到 Arraylist [重复]
【发布时间】:2019-11-11 05:51:54
【问题描述】:

我正在使用 RecyclerView 和 CardView。我希望系统根据 JSON 中的情况选择要显示的 ImageView。我该怎么做?我实现了 if 语句,但似乎该语句不起作用。有人可以给我一个建议。这是我第一次写解析程序。我对此了解不多。

package com.morimoku.location_activity;

    import android.app.DownloadManager;
    import android.content.res.Resources;
    import android.os.Bundle;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.ArrayAdapter;
    import android.widget.Button;
    import android.widget.ListView;
    import android.widget.TextView;

    import androidx.annotation.Nullable;
    import androidx.fragment.app.Fragment;
    import androidx.recyclerview.widget.LinearLayoutManager;
    import androidx.recyclerview.widget.RecyclerView;


    import com.android.volley.Request;
    import com.android.volley.RequestQueue;
    import com.android.volley.Response;
    import com.android.volley.VolleyError;
    import com.android.volley.toolbox.JsonObjectRequest;
    import com.android.volley.toolbox.Volley;

    import org.json.JSONArray;
    import org.json.JSONException;
    import org.json.JSONObject;

    import java.util.ArrayList;

    public class favaoritesFragment extends Fragment {
        public static TextView data;
        private RecyclerView.Adapter mAdapter;
        private RequestQueue mQueue;
        private RecyclerView.LayoutManager mLayoutManager;
        int i1;
        int i2;
        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState){
            View view = inflater.inflate(R.layout.fragment_favorites,container,false);
            mQueue = Volley.newRequestQueue(getActivity());

            ArrayList<Status> statusArrayList = new ArrayList<>();
            statusArrayList.add(new Status(R.drawable.ic_action_name,"Line 1", (i1 == 0)?
                    R.drawable.ic_check_box_black_24dp: R.drawable.ic_warning_black_24dp));
            statusArrayList.add(new Status(R.drawable.ic_action_name,"Line 2", (i2 == 0)?
                    R.drawable.ic_check_box_black_24dp: R.drawable.ic_warning_black_24dp));
            mAdapter = new RecyclerAdapter(statusArrayList);
            RecyclerView  mRecyclerView = view.findViewById(R.id.recyclerView);
            mRecyclerView.setHasFixedSize(true);
            mRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));//listView.setAdapter(adapter);
            mRecyclerView.setAdapter(mAdapter);




            return view;
        }


    private void jsonParse() {
        String url = ("URL");
        JsonObjectRequest request = new JsonObjectRequest(Request.Method.GET, url, null, new Response.Listener<JSONObject>() {
            @Override
            public void onResponse(JSONObject response) {
                try {
                    JSONArray jsonArray = response.getJSONArray("odpt.TrainInformation:Line 1");
                    for (int i = 0; i < jsonArray.length(); i++) {
                        JSONObject negishi = jsonArray.getJSONObject(i);

                        String negishis = negishi.getString("odpt:trainInformationText");

                        if (negishis.equals( "operating normally")) {
                            i1 = 0;
                        } else {
                            i1 = 1;
                        }
                    }
                    JSONArray jsonArray1 = response.getJSONArray("odpt.TrainInformation:Line 2");
                    for (int i = 0; i < jsonArray.length(); i++) {
                        JSONObject negishi2 = jsonArray.getJSONObject(i);

                        String negishis2 = negishi2.getString("odpt:trainInformationText");

                        if (negishis2 .equals( "operating normally")) {
                            i2 = 0;
                        } else {
                            i2 = 1;
                        }
                    }
                } catch (JSONException e) {
                    e.printStackTrace();
                }
            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                error.printStackTrace();
            }
        });
    }}

【问题讨论】:

    标签: java android android-recyclerview


    【解决方案1】:
    statusArrayList.add(new Status(R.drawable.ic_action_name,"keihin",
           (i1 == 0? R.drawable.common_google_signin_btn_icon_dark_focused:
                R.drawable.common_google_signin_btn_icon_dark_focused));
    

    【讨论】:

    • 感谢您的回复。它没有用。
    • 您最初的问题是询问如何替换参数中的 if 语句。现在你用我的回答改变了你的代码并问了另一个问题?
    • 即使您发现您还有其他问题,您也可以直接编辑它,无需投票
    • 我编辑了这个问题,因为有人说这是一个重复的问题。另一个问题与此完全不同!而且我没有投反对票!我再说一遍我没有。谢谢你的建议。
    • 顺便说一下,这个问题不是if语句的问题。我已将某些地方更改为 .equals 但它不起作用。我认为解析部分存在问题。谢谢你的建议。
    猜你喜欢
    • 2018-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-09
    相关资源
    最近更新 更多