简体   繁体   English

如何在列表视图中以片段形式显示数组?

[英]How can I display the array on my listview in a fragment?

I am working on a reservation system 我正在预订系统上

I need to display an array on a listview I tried some codes however they dont work 我需要在列表视图上显示一个数组,我尝试了一些代码,但是它们不起作用

Help me please 请帮帮我

Thanks in advance; 提前致谢;

This is OnCreateView part 这是OnCreateView的一部分

public class Res extends Fragment {
    ListView lv;
    ArrayAdapter adapter;
    ProgressDialog loading;

    @Override
    public View onCreateView(LayoutInflater inflater,
                             ViewGroup container,
                             Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment_res, container, false);
        lv=view.findViewById(R.id.lview);

        getReservations();
        return view;
    }

and this part is to receive data from google sheet whic has reservations and to display the reservations on my listview by using adapter. 这部分是从Google工作表接收具有保留的数据,并使用适配器在我的ListView上显示保留。

private void getReservations() {

        loading =  ProgressDialog.show(getActivity(),"Rezervasyonlar yukleniyor","Lutfen Bekleyiniz",false,true);

        StringRequest stringRequest = new StringRequest(Request.Method.GET, "HERE I HAVE THE URL ..WORKS ON GOOGLE APP SCRIPT BUT PROBLEM IS ABOUT MY CODE ",
                new Response.Listener<String>() {
                    @Override
                    public void onResponse(String response) {
                        parseItems(response);
                    }
                },

                new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {

                    }
                }
        );
        int socketTimeOut = 50000;
        RetryPolicy policy = new DefaultRetryPolicy(socketTimeOut, 0, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT);

        stringRequest.setRetryPolicy(policy);

        RequestQueue queue = Volley.newRequestQueue(getActivity());
        queue.add(stringRequest);
    }

    private void parseItems(String jsonResponse) {
        ArrayList<HashMap<String, String>> list = new ArrayList<>();

        try {
            JSONObject jobj = new JSONObject(jsonResponse);
            JSONArray jarray = jobj.getJSONArray("items");


            for (int i = 0; i < jarray.length(); i++) {

                JSONObject jo = jarray.getJSONObject(i);

                final String name = jo.getString("name");
                final String phone = jo.getString("phone");
                final String email = jo.getString("email");
                final String arriving = jo.getString("arriving");
                final String departure = jo.getString("departure");
                final String pax = jo.getString("pax");
                final String roomtype = jo.getString("roomtype");
                final String rate = jo.getString("rate");
                final String address = jo.getString("addres");
                final String company = jo.getString("company");
                final String agency = jo.getString("agency");
                final String ratecode= jo.getString("ratecode");

                HashMap<String, String> item  = new HashMap<>();
                item.put("name",name);
                item.put("email",email);
                item.put("phone",phone);
                item.put("arriving",arriving);
                item.put("departure",departure);
                item.put("company",company);
                item.put("pax",pax);
                item.put("roomtype",roomtype);
                item.put("rate",rate);
                item.put("address",address);
                item.put("agency",agency);
                item.put("ratecode",ratecode);

                list.add(item);


            }
        } catch (JSONException e) {
            e.printStackTrace();
        }


        //adapter = new SimpleAdapter(getActivity(),list,R.layout.getres,
                //new String[]{"name","phone","email","arriving","departure","pax","roomtype","rate","address","company","agency"},new int[]{R.id.namev,R.id.phonev,R.id.emailv,R.id.checkv,R.id.depv,R.id.personv,R.id.roomtypev,R.id.ratev,R.id.adresv,R.id.companyv,R.id.agencyv});

        //ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(),android.R.layout.simple_list_item_1,list);
        adapter = new ArrayAdapter(getActivity().getApplicationContext(), android.R.layout.simple_list_item_1, list);


        lv.setAdapter(adapter);
        lv.setCacheColorHint(getResources().getColor(android.R.color.white   ));
        loading.dismiss();

    }

Here I have XMLs that have textviews and listview 在这里,我有具有textviews和listview的XML

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@android:color/holo_red_light"
    tools:context=".Res">


    <ListView
        android:id="@+id/lview"
        style="@android:style/Widget.Holo.ListView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:cacheColorHint="@android:color/background_light" />
</RelativeLayout>

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TableLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/design_default_color_primary">

        <TableRow
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@android:color/holo_blue_light">

            <TextView
                android:id="@+id/namev"
                android:layout_width="157dp"
                android:layout_height="match_parent"
                android:ems="10"
                android:hint="Name"
                android:inputType="textPersonName" />

            <TextView
                android:id="@+id/emailv"
                android:layout_width="121dp"
                android:layout_height="match_parent"
                android:layout_marginStart="5dp"
                android:ems="10"
                android:hint="E-mail"
                android:inputType="textPersonName" />

            <TextView
                android:id="@+id/phonev"
                android:layout_width="70dp"
                android:layout_height="wrap_content"
                android:ems="10"
                android:hint="Phone"
                android:inputType="number" />
        </TableRow>

        <TableRow
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="@android:color/holo_orange_light">

            <TextView
                android:id="@+id/companyv"
                android:layout_width="111dp"
                android:layout_height="wrap_content"
                android:ems="10"
                android:hint="Company"
                android:inputType="textPersonName" />

            <TextView
                android:id="@+id/adresv"
                android:layout_width="132dp"
                android:layout_height="wrap_content"
                android:layout_marginStart="5dp"
                android:ems="10"
                android:hint="Address"
                android:inputType="textPersonName" />

            <TextView
                android:id="@+id/agencyv"
                android:layout_width="91dp"
                android:layout_height="match_parent"
                android:ems="10"
                android:hint="Agency"
                android:inputType="textPersonName" />

        </TableRow>

        <TableRow
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="@android:color/holo_blue_light">


            <TextView
                android:id="@+id/nationv"
                android:layout_width="105dp"
                android:layout_height="wrap_content"
                android:ems="10"
                android:hint="Natinality"
                android:inputType="textPersonName" />

            <TextView
                android:id="@+id/idnov"
                android:layout_width="143dp"
                android:layout_height="wrap_content"
                android:ems="10"
                android:hint="ID number"
                android:inputType="textPersonName" />

        </TableRow>

        <TableRow
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="@android:color/holo_orange_light">

            <TextView
                android:id="@+id/checkv"
                android:layout_width="111dp"
                android:layout_height="wrap_content"
                android:ems="10"
                android:hint="Arriving"
                android:inputType="date" />

            <TextView
                android:id="@+id/depv"
                android:layout_width="160dp"
                android:layout_height="wrap_content"
                android:ems="10"
                android:hint="Departure"
                android:inputType="date" />
        </TableRow>

        <TableRow
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="@android:color/holo_blue_light">

            <TextView
                android:id="@+id/roomprv"
                android:layout_width="137dp"
                android:layout_height="wrap_content"
                android:ems="10"
                android:hint="Room Preference"
                android:inputType="textPersonName" />

            <TextView
                android:id="@+id/roomtypev"
                android:layout_width="155dp"
                android:layout_height="wrap_content"
                android:ems="10"
                android:hint="Room Tye"
                android:inputType="textPersonName" />
        </TableRow>

        <TableRow
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="@android:color/holo_orange_light">

            <TextView
                android:id="@+id/textView4"
                android:layout_width="113dp"
                android:layout_height="match_parent"
                android:layout_marginTop="0dp"
                android:gravity="center_vertical"
                android:text="Pérson" />

            <TextView
                android:id="@+id/personv"
                android:layout_width="134dp"
                android:layout_height="wrap_content"
                android:autofillHints=""
                android:ems="10"
                android:gravity="center|center_vertical"
                android:inputType="number"
                android:text="0" />


        </TableRow>
        <TableRow
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="@android:color/holo_blue_light">

            <TextView
                android:id="@+id/ratecodev"
                android:layout_width="114dp"
                android:layout_height="wrap_content"
                android:ems="10"
                android:hint="Rate Code"
                android:inputType="textPersonName" />

            <TextView
                android:id="@+id/ratev"
                android:layout_width="151dp"
                android:layout_height="wrap_content"
                android:ems="10"
                android:hint="Rate"
                android:inputType="textPersonName" />



        </TableRow>

        <TableRow
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="@android:color/holo_orange_light"
            android:gravity="center">

        </TableRow>
    </TableLayout>

</FrameLayout>

I don't see for sure that what exactly the issue is on your side. 我不确定您所面对的问题到底是什么。 But I would suggest doing these things to confirm where the issue is. 但我建议您做这些事情以确认问题出在哪里。

Make sure you are receiving something on the network call 确保您在网络通话中收到了一些东西

You have this function inside your volley request. 您在排球请求中具有此功能。

            public void onResponse(String response) {
                parseItems(response);
            }

Did you make sure that response contains a valid JSON string that has your items?. 您是否确定响应包含包含您的商品的有效JSON字符串? So first try printing this response in the LOG and see if you are getting something from the request or not. 因此,首先尝试在LOG中打印此响应,看看您是否从请求中得到了一些东西。

If you are getting something in your response, and still it is not working. 如果您在响应中得到一些帮助,但仍然无法正常工作。 Then comment the screenshot or the response string here. 然后在此处评论屏幕截图或响应字符串。 Also if you can reveal your URL where you are sending the request to fetch the data then it would be easy for me to check why it is not working in your case. 另外,如果您可以在发送请求以获取数据的位置显示URL,那么我很容易检查一下为什么在您的情况下不起作用。

Additional you should do this. 另外,您应该这样做。 This is not the cause of your problem but you should use it this way. 这不是造成问题的原因,但是您应该以这种方式使用它。 This line of your code snippet 您的代码段的这一行

 lv=view.findViewById(R.id.lview); 
 getReservations();

Override the function onViewCreated() and put these two lines inside this function. 重写onViewCreated()函数,并将这两行放在该函数中。 But the actual problem is not here 但是实际的问题不在这里

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何在片段内显示Listview - How to display a Listview inside a Fragment 如何在片段类中显示listView? - How to display listView in fragment class? 我在Android Studio中使用Glide进行图像显示,但是如何在我的ListView中实现Glide? - i use Glide for my image display in android studio but how can i implement Glide to my listview? 如何通过单击ListView中的项目转到另一个片段? - How can I go to another fragment by clicking on an item in a ListView? 如何使用Fragment关联webView和listView项目 - how can I relate webView and listView items using Fragment 如何使用 SQL 数据库在 Fragment 上创建 Adapter ListView? - How can I make an Adapter ListView on a Fragment using an SQL database? 如何将setAdapter用于另一个Fragment中的ListView? - How can I use setAdapter for a ListView in another Fragment? 如何从主Activity中刷新片段中的ListView? - How can I refresh a ListView in a Fragment from the main Activity? 当我尝试从Firestore提取数据并显示在listview片段中时,我的应用程序崩溃 - My app crashes when i try to fetch data from Firestore and display in the listview fragment 如何显示二维数组中的最大数量? - How can I display the largest amount in my 2D array?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM