ListView gets network data and displays optimization exercises

Permissions:

 

<uses-permission android:name="android.permission.INTERNET"></uses-permission>

 

rely:

 

compile 'com.google.code.gson: gson: 2.8.2'

 

MainActivity layout:

 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context="com.mrzhao.examdemo.MainActivity">


    <Button

android:id="@+id/getData_bt" android:onClick="onClick" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="10dp" android:text="点击获取网络数据" tools:ignore="OnClick" /> <Button android:id="@+id/toSecond_bt" android:onClick="onClick" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="10dp"android:text="跳转到第二个页面" tools:ignore="OnClick" /> </LinearLayout>

MainActivity code:

 

public class MainActivity extends AppCompatActivity {

    private String path = "http://www.qubaobei.com/ios/cf/dish_list.php?stage_id=1&limit=20&page=1";
    private FoodEntity foodEntity;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate (savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    public void onClick(View view) {
        switch (view.getId()) {
            case R.id.getData_bt:
                new MyTask().execute();
                break;
            case R.id.toSecond_bt:
                if (foodEntity!=null){
                    Intent intent = new Intent(this,SecondActivity.class);
                    intent.putExtra("food",foodEntity);
                    startActivity(intent);
                }
                break;
        }
    }

    class MyTask extends AsyncTask<String, Void, String> {

        @Override
        protected String doInBackground(String... strings) {
            return getDataFromNet();
        }

        @Override
        protected void onPostExecute(String s) {
            super.onPostExecute(s);
            // Judging if it is not empty, go to parsing
            if (!TextUtils.isEmpty(s)) {
                Gson gson = new Gson ();
                foodEntity= gson.fromJson(s, FoodEntity.class);
            }
        }
    }
    /**
      * Get data from the network
      *
      * @return
 */
 private String getDataFromNet() {
        InputStream inputStream = null;
        ByteArrayOutputStream outputStream = null;
        try {
            URL url = new URL(path);
            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
            conn.setRequestMethod("GET");
            conn.setConnectTimeout(30 * 1000);
            conn.setReadTimeout(30 * 1000);
            conn.connect();
            if (conn.getResponseCode() == 200) {
                inputStream = conn.getInputStream();
                outputStream = new ByteArrayOutputStream();
                int len ​​= 0;
                byte[] bytes = new byte[1024];
                while ((len = inputStream.read(bytes)) != -1) {
                    outputStream.write(bytes, 0, len);
                }
                return outputStream.toString();
            }
        } catch (MalformedURLException e) {
            e.printStackTrace(www.fengshen157.com);
        } catch (ProtocolException e) {
            e.printStackTrace ();
        } catch (IOException e) {
            e.printStackTrace ();
        }
finally {
    if (inputStream!=null){
        try {
            inputStream.close();
        } catch (IOException e) {
            e.printStackTrace ();
        }
    }
    if (outputStream!=null){
        try {
            outputStream.close();
        } catch (IOException e) {
            e.printStackTrace ();
        }
    }
}

return null; }}

SecondActivity layout:

 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://www.fengshen157.com schemas.android.com/apk/res/android"
    xmlns:app="http://www.huarenyl.cn   schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.mrzhao.examdemo.SecondActivity">

    <ListView
        android:id="@+id/listView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"></ListView>
</LinearLayout>

 

SecondActivity code:

 

public class SecondActivity extends AppCompatActivity {

    private ListView listView;
    private MyAdapter myAdapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate (savedInstanceState);
        setContentView(R.layout.activity_second);
        //Get the passed parsing object
        FoodEntity foodEntity = (FoodEntity) getIntent().getSerializableExtra("food");
        final List<FoodEntity.DataBean> data = foodEntity.getData();

        // instantiate the view
        listView = www.006665.cn  (ListView) findViewById(R.id.listView);
        myAdapter = new MyAdapter(data, this);
        listView.setAdapter(myAdapter);
        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                Toast.makeText(SecondActivity.this, www.huayi157.com/ data.get(position).getTitle(), Toast.LENGTH_SHORT).show();
            }
        });
    }
}

 

Item entry layout:

 

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

    <TextView
        android:id="@+id/title_tv"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        android:textSize="20sp"www.baohuayule.cn />
</LinearLayout>

 

adapter:

 

public class MyAdapter extends BaseAdapter {
    private List<FoodEntity.DataBean> list;
    private Context context;
    private LayoutInflater www.thylgw.cn/ inflater;

    public MyAdapter(List<FoodEntity.DataBean> list, Context context) {
        this.list = list;
        this.context = context;
        inflater = LayoutInflater.from(context);
    }

    @Override
    public int getCount() {
        return list.size();
    }

    @Override
    public Object getItem(int position) {
        return list.get(position);
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        ViewHolder holder = null;
        if (convertView == null) {
            convertView = inflater.inflate(R.layout.item_layout, parent, false);
            holder = new ViewHolder();
            holder.titleTv = (TextView) convertView.findViewById(R.id.title_tv);
            convertView.setTag (holder);
        } else {
            holder = (ViewHolder) convertView.getTag();
        }
        String title = list.get(position).getTitle();
        holder.titleTv.setText(title);
        return convertView;
    }

    static class ViewHolder {
        TextView titleTv;
    }
}

 

Parse entity class:

 

public class FoodEntity implements Serializable{


    / **
      * ret: 1
     * data : [{"id":"8289","title":"Boiled Prawns","pic":"http://www.qubaobei.com/ios/cf/uploadfile/132/9/8289 .jpg","collect_num":"1659","food_str":"Shrimp onion ginger vegetable oil cooking wine","num":1659},{"id":"2127","title":"Sichuan double-cooked pork", "pic":"http://www.qubaobei.com/ios/cf/uploadfile/132/3/2127.jpg","collect_num":"1585","food_str":"Pork green garlic green pepper red pepper ginger slice ","num":1585},{"id":"30630","title":"Super Simple Mango Pudding","pic":"http://www.qubaobei.com/ios/cf/uploadfile/ 132/31/30630.jpg","collect_num":"1529","food_str":"QQ Sugar Milk Mango","num":1529},{"id":"9073","title":"Homestyle Braised Fish","pic":"http://www.qubaobei.com/ios/cf/uploadfile/132/10/9073.jpg","collect_num":"1419","food_str":"fresh Fish Ginger Onion Garlic Pepper","num":1419},{"id":"10097","title":"Homestyle Fried Tofu","pic":"http://www.qubaobei.com/ios/ cf/uploadfile/132/11/10097.jpg","collect_num":"1406","food_str":"Tofu Fresh Red Pepper Green Pepper Scallion Oil","num":1406},{"id":"10509" ,"title":"Boiled Pork Slices","pic":"http://www.qubaobei.com/ios/cf/uploadfile/132/11/10509.jpg","collect_num":"1336"," food_str":"Lean pork, lettuce, bean paste, dried pepper and pepper","num":1336},{"id":"46968","title":"Brown sugar apple and white fungus soup","pic":"http:// www.qubaobei.com/ios/cf/uploadfile/132/47/46968.jpg","collect_num":"1245","food_str":"white fungus apple brown sugar","num":1245},{"id":" 10191","title":"Mapo Tofu","pic":"http://www.qubaobei.com/ios/cf/uploadfile/132/11/10191.jpg","collect_num":"1214" ,"food_str":"Tofu Minced Pork Soy Sauce White Sugar Sesame Oil","num":1214},{"id":"2372","title":"Preserved Egg Lean Meat Porridge","pic":"http:/ /www.qubaobei.com/ios/cf/uploadfile/132/3/2372.jpg","collect_num":"1147","food_str":"rice preserved egg pork fritters chives","num":1147}, {"id":"2166","title":"Ant on the tree","pic":"http://www.qubaobei.com/ios/cf/uploadfile/132/3/2166.jpg","collect_num":"1140","food_str":"Sweet potato powder meat ginger garlic pepper","num":1140},{"id":"2262","title":"Sweet and sour pork","pic": "http://www.qubaobei.com/ios/cf/uploadfile/132/3/2262.jpg","collect_num":"1074","food_str":"pork red pepper yellow pepper onion egg white","num ":1074},{"id":"9971","title":"Fish-flavored tofu","pic":"http://www.qubaobei.com/ios/cf/uploadfile/132/10/9971 .jpg","collect_num":"1004","food_str":"Tofu, Fungus, Carrot, Chives and Tomato Sauce","num":1004},{"id":"10172","title":"Dried Four Seasons Bean","pic":"http://www.qubaobei.com/ios/cf/uploadfile/132/11/10172.jpg","collect_num":"988","food_str":"Green Beans, Chili, Garlic, Soy Sauce, Sugar","num":988},{"id":"2685","title":"Steamed Egg with Carrot Minced Pork","pic":"http://www.qubaobei. com/ios/cf/uploadfile/132/3/2685.jpg","collect_num":"918","food_str":"Carrot meat, eggs, soy sauce","num":918},{"id": "9972","title":"Tiger skin green pepper","pic":"http://www.qubaobei.com/ios/cf/uploadfile/132/10/9972.jpg","collect_num":"889 ","food_str":"Green chilli garlic balsamic vinegar white sugar light soy sauce","num":889},{"id":"10437","title":"Barbecued pork ribs","pic":"http:/ /www.qubaobei.com/ios/cf/uploadfile/132/11/10437.jpg","collect_num":"797","food_str":"Pork Ribs Lee Kum Kee Char Siu Sauce Vegetable Oil Clear Water Rape","num":797} ,{"id":"2892","title":"\u201cFive Elements\u201d Colorful Vegetable Soup","pic":"http://www.qubaobei.com/ios/cf/uploadfile/132/3/2892.jpg"," collect_num":"756","food_str":"Black fungus, corn, burdock, carrot and broccoli","num":756},{"id":"33783","title":"Beauty Soybean Milk","pic": "http://www.qubaobei.com/ios/cf/uploadfile/132/34/33783.jpg","collect_num":"753","food_str":"Soy bean red bean mung bean black bean black rice","num" :753},{"id":"2348","title":"Spicy Pork Noodles","pic":"http://www.qubaobei.com/ios/cf/uploadfile/132/3/2348 .jpg","collect_num":"753","food_str":"Noodles with shredded pork starch soy sauce pepper","num":753},{"id":"10044","title":"Braised with potatoes and wings ","pic":"http://www.qubaobei.com/ios/cf/uploadfile/132/11/10044.jpg","collect_num":"752","food_str":"土豆 翅根 葱 姜 料酒","num":752}]
     */
private int ret;
    private List<DataBean> data;

    public int getRet() {
        return ret;
    }

    public void setRet(int ret) {
        this.ret = ret;
    }

    public List<DataBean> getData() {
        return data;
    }

    public void setData(List<DataBean> data) {
        this.data = data;
    }

    public static class DataBean implements Serializable{
        /**
          * id : 8289
          * title : Braised Prawns
          * pic : http://www.qubaobei.com/ios/cf/uploadfile/132/9/8289.jpg
          * collect_num : 1659
          * food_str : Prawns and Onions Ginger vegetable oil cooking wine
          * num : 1659
          */
 private String id;
        private String title;
        private String pic;
        private String collect_num;
        private String food_str;
        private int num;

        public String getId() {
            return id;
        }

        public void setId(String id) {
            this.id = id;
        }

        public String getTitle() {
            return title;
        }

        public void setTitle(String title) {
            this.title = title;
        }

        public String getPic() {
            return pic;
        }

        public void setPic(String pic) {
            this.pic = pic;
        }

        public String getCollect_num() {
            return collect_num;
        }

        public void setCollect_num(String collect_num) {
            this.collect_num = collect_num;
        }

        public String getFood_str() {
            return food_str;
        }

        public void setFood_str(String food_str) {
            this.food_str = food_str;
        }

        public int getNum() {
            return num;
        }

        public void setNum (int num) {
            this.num = num;
        }

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=324791562&siteId=291194637