千家信息网

Android中如何自定义对话框

发表于:2024-11-20 作者:千家信息网编辑
千家信息网最后更新 2024年11月20日,本文小编为大家详细介绍"Android中如何自定义对话框",内容详细,步骤清晰,细节处理妥当,希望这篇"Android中如何自定义对话框"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习
千家信息网最后更新 2024年11月20日Android中如何自定义对话框

本文小编为大家详细介绍"Android中如何自定义对话框",内容详细,步骤清晰,细节处理妥当,希望这篇"Android中如何自定义对话框"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

本文测试的harbor的版本是V2.3.3。

下列代码中,使用了一个叫HttpUtils.sendGet的方法。这是我自己实现的一个HTTP请求工具。其代码参见:Java原生HttpClient使用示例。

public void getImages(String harborHost, String cookieStr) throws Exception {    HttpResponse catalogResp = HttpUtils.sendGet(harborHost + "/v2/_catalog", cookieStr);    List strings = JSONObject.parseObject(catalogResp.body()).getJSONArray("repositories").toJavaList(String.class);    HashMap> result = new HashMap<>();    for (String image : strings) {        ArrayList tagList = new ArrayList<>();        String[] split = image.split("/");        String repositoryName = split[0];        String imageName = split[1];        String urlForImageInfo = harborHost + "/api/v2.0/projects/" + repositoryName + "/repositories/" + imageName;        HttpResponse infoResp = HttpUtils.sendGet(urlForImageInfo, cookieStr);        Integer artifactCount = JSONObject.parseObject(infoResp.body()).getInteger("artifact_count");        int pageNum = artifactCount / 15;        pageNum = pageNum * 15 >= artifactCount ? pageNum : pageNum + 1;        for (int i = 1; i <= pageNum; i++) {            String urlForTags = urlForImageInfo + "/artifacts?with_tag=true&with_scan_overview=true&with_label=true&page_size=15&page=" + i;            HttpResponse tagsResp = HttpUtils.sendGet(urlForTags, cookieStr);            JSONArray tagArray = JSONObject.parseArray(tagsResp.body());            for (int j = 0; j < tagArray.size(); j++) {                String tagsStr = tagArray.getJSONObject(j).getString("tags");                if (!StrUtils.isEmpty(tagsStr)) {                    JSONArray tags = tagArray.getJSONObject(j).getJSONArray("tags");                    for (int k = 0; k < tags.size(); k++) {                        tagList.add(tags.getJSONObject(k).getString("name"));                    }                }            }        }        result.put(image, tagList);    }    for (String key : result.keySet()) {        for (String t : result.get(key)) {            System.out.println(key + ":" + t);        }    }}

此方法需要传入两个参数。第一个是:harborHost为harbor的URL的字符串,比如:https://harbor.wja.cn
第二个也是一个字符串,需要手动登录harbor页面,在首页中,按F12,弹出开发工具,然后刷新页面,第一个请求的cookie的值就所需的字符串,如下图所示:

测试结果如下:

读到这里,这篇"Android中如何自定义对话框"文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注行业资讯频道。

0