瑞客论坛

 找回密码
 立即注册
楼主: Dream

人工智能原理课程(5金币)

[复制链接]

金币4810  第283名

25

主题

1132

回帖

1万

积分

论坛元老

Rank: 8Rank: 8

威望
3612
贡献
3813
热心值
3
金币
4810
注册时间
2020-2-11
发表于 2021-10-28 08:34 | 显示全部楼层
public class MainActivity extends AppCompatActivity {

    private static final int WHAT_SUCCESS = 1;
    private static final int WHAT_FAIL = 2;

    private ListView lv_main;
    private LinearLayout ll_main_loading;
    private List<ShopInfo> data;
    private ShopInfoAdapter adapter;

    private Handler handler = new Handler() {
        @Override
        public void handleMessage(@NonNull Message msg) {
            switch (msg.what) {
                case WHAT_SUCCESS:
                    ll_main_loading.setVisibility(View.GONE);
                    // 显示列表
                    lv_main.setAdapter(adapter);
                    break;
                case WHAT_FAIL:
                    ll_main_loading.setVisibility(View.GONE);
                    Toast.makeText(MainActivity.this, "加载数据失败!", (int) 1).show();
                    break;
                default:
            }
        }
    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        lv_main = findViewById(R.id.lv_main);
        ll_main_loading = findViewById(R.id.ll_main_loading);
        adapter = new ShopInfoAdapter();

        // 1.主线程,显示提示视图
        ll_main_loading.setVisibility(View.VISIBLE);
        // 2.分线程,联网请求
        // 启动分线程请求服务器动态加载数据并显示
        new Thread(() -> {
            try {
                String jsonStr = requestJson();
                System.out.println(jsonStr);
                Gson gson = new Gson();
                Log.e("gson:", gson + "");
                data = gson.fromJson(jsonStr, new TypeToken<List<ShopInfo>>() {
                }.getType());
                Log.e("json:", data + "");
                // 3.主线程,更新界面
                // 发送请求成功的消息
                handler.sendEmptyMessage(WHAT_SUCCESS);
            } catch (Exception e) {
                e.printStackTrace();
                // 发送请求失败的消息
                handler.sendEmptyMessage(WHAT_FAIL);
            }
        }).start();
    }

    /**
     * 联网请求得到json字符串
     *
     * @return
     */
    private String requestJson() throws Exception {
        String result = "";
        // 192.168.124.4
        // 192.168.0.103
        String path = "http://192.168.124.4:9999/vod/gets";
        // 1.得到连接对象
        URL url = new URL(path);
        HttpURLConnection connection = (HttpURLConnection) url.openConnection();
        //(4)设置连接超时,读取数据超时
        connection.setConnectTimeout(5000);
        connection.setReadTimeout(5000);
        //(5)连接服务器
        connection.connect();
        int responseCode = connection.getResponseCode();
        if (responseCode == 200) {
            //(6)发请求,得到响应数据
            InputStream is = connection.getInputStream();
            ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
            byte[] buffer = new byte[1024];
            int len = -1;
            while ((len = is.read(buffer)) != -1) {
                byteArrayOutputStream.write(buffer, 0, len);
            }
            byteArrayOutputStream.close();
            is.close();
            result = byteArrayOutputStream.toString();
            // (7)断开连接
            connection.disconnect();
        } else {
            // 也可以抛出异常
        }
        return result;
    }

    class ShopInfoAdapter extends BaseAdapter {

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

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

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

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            if (convertView == null) {
                convertView = View.inflate(MainActivity.this, R.layout.item_main, null);
            }
            // 得到当前行的数据对象
            ShopInfo shopInfo = data.get(position);
            // 得到当前行的子view
            TextView name = convertView.findViewById(R.id.tv_item_name);
            TextView id = convertView.findViewById(R.id.tv_item_content);
            ImageView imageView = convertView.findViewById(R.id.iv_item_icon);
            // 设置数据显示
            name.setText(shopInfo.getVideoName());
            id.setText(shopInfo.getId());
            // 根据图片路径启动分线程动态请求服务加载图片并显示
            return convertView;
        }
    }
}
回复

使用道具 举报

金币957  第1742名

5

主题

1278

回帖

8625

积分

论坛元老

Rank: 8Rank: 8

威望
5215
贡献
2452
热心值
1
金币
957
注册时间
2021-8-26

活跃会员一年荣誉奖章灌水之王三年荣誉奖章

发表于 2021-10-28 08:35 | 显示全部楼层
无回帖,不论坛,这才是人道。
回复

使用道具 举报

金币2292  第744名

0

主题

4011

回帖

1万

积分

论坛元老

Rank: 8Rank: 8

威望
9026
贡献
6228
热心值
0
金币
2292
注册时间
2019-5-24
发表于 2021-10-28 08:44 | 显示全部楼层
真是被感动的痛哭流涕……
回复

使用道具 举报

金币373  第3810名

0

主题

229

回帖

636

积分

高级会员

Rank: 4

威望
149
贡献
114
热心值
0
金币
373
注册时间
2020-9-1
发表于 2021-10-28 12:50 | 显示全部楼层
激动人心,无法言表!
回复

使用道具 举报

金币3  第36339名

0

主题

19

回帖

19

积分

新手上路

Rank: 1

威望
10
贡献
6
热心值
0
金币
3
注册时间
2021-10-28
发表于 2021-10-28 15:16 | 显示全部楼层
楼主加油,我们都看好你哦。
回复

使用道具 举报

金币258  第4876名

2

主题

1165

回帖

1万

积分

论坛元老

Rank: 8Rank: 8

威望
4877
贡献
5461
热心值
1
金币
258
注册时间
2021-1-6
发表于 2021-10-28 21:16 | 显示全部楼层
淡定,淡定,淡定……
回复

使用道具 举报

金币1864  第920名

8

主题

1121

回帖

1万

积分

论坛元老

Rank: 8Rank: 8

威望
4825
贡献
5212
热心值
1
金币
1864
注册时间
2019-10-18
发表于 2021-10-29 13:38 | 显示全部楼层
谢谢
回复

使用道具 举报

金币2163  第794名

0

主题

591

回帖

7194

积分

论坛元老

Rank: 8Rank: 8

威望
2303
贡献
2728
热心值
0
金币
2163
注册时间
2020-11-14
发表于 2021-10-29 13:48 | 显示全部楼层
感恩无私的分享与奉献
回复

使用道具 举报

金币103  第9772名

0

主题

1611

回帖

6943

积分

论坛元老

Rank: 8Rank: 8

威望
4062
贡献
2778
热心值
0
金币
103
注册时间
2020-10-12
发表于 2021-11-1 21:27 | 显示全部楼层
强烈支持楼主ing……
回复

使用道具 举报

金币554  第2852名

0

主题

104

回帖

2263

积分

永久会员

Rank: 8Rank: 8

威望
994
贡献
715
热心值
0
金币
554
注册时间
2020-11-6
发表于 2021-11-3 23:10 | 显示全部楼层
6666666666666
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|瑞客论坛 |网站地图

GMT+8, 2024-11-26 13:53

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表