当前位置: 首页 > 知识库问答 >
问题:

在Android Studio中有没有一种方法可以通过Ajax发送多种类型的HashMap参数?

熊嘉茂
2023-03-14

我尝试将ParamFile参数放入另一个查询中,但仍然不起作用。虽然这可能是因为我不完全确定“对象处理程序”在其他方法定义中的含义。

下面是我的方法的代码:

private void AddNewEquipment()
{
       try {
            //Two types of HashMap files

            HashMap<String, String> param = new HashMap<>();
            HashMap<String, Bitmap> paramFile = new HashMap<>();
            param.put("listing_title", ETitle.getText().toString());
            param.put("listing_type", String.valueOf(IntEquipmentType));
            param.put("listing_desc", EDesc.getText().toString());
            param.put("listing_rate", ERate.getText().toString());
            param.put("listing_mode", Mode);
            paramFile.put("listing_img_file", bitmap); //this never gets queried
            param.put("listing_date_from-x", AvailableFromDT);
            param.put("listing_date_to-x", AvailableToDT);
            param.put("listing_sell_mode", SellMode);
            param.put("listing_display_mode", String.valueOf(IntAdType));
            param.put("listing_status", String.valueOf(IntAdStatus));

            AQuery aq = new AQuery(this);
            aq.ajax(BASE_URL, param, JSONObject.class, new AjaxCallback<JSONObject>() {
                @Override
                public void callback(String url, JSONObject json, AjaxStatus status) {
                    super.callback(url, json, status);

                    Log.v("CALLBACK RECEIVED", String.valueOf(json) + status);
                    try {
                        if (json != null) {
                            JSONObject h = json.getJSONObject("success");
                            Log.v("SUCCESS", "DONE");
                            Toast.makeText(AddEquipment.this, "New Equipment Added", Toast.LENGTH_LONG).show();
                            exitEquipmentForm(); //method that opens the main activity again
                        } else {
                            Log.v("ERROR", "ERROR");
                        }
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }

            }.method(AQuery.METHOD_POST).header("Authorization", "Bearer "+SessionHandler.getKeyToken()));
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

我一直得到空的JSON对象,尽管这是因为不是所有的参数都被查询<----这是我需要帮助的部分。

我很乐意提供更多代码片段。请让我知道任何替代方案以及。

共有1个答案

冯茂实
2023-03-14

如果使用固定数据类型初始化HashMap,则不能为另一个指定的数据类型存储任何其他值。如果要将任何数据存储为值,则应使用Object data Type。

就像

HashMap<String, Object> param = new HashMap<>();

之后可以添加任何值(位图或字符串)作为映射值。

HashMap<String, Object> param = new HashMap<>();
param.put("listing_title", ETitle.getText().toString()); // String values
// add Other String parameters here..
param.put("listing_img_file", bitmap); // Your Image Bitmap file
 类似资料:
  • 我正在用SpringBoot构建一个应用程序。我有一个存储库,我通过以下方式从方法名称创建查询: 这样的查询可以工作,方法调用的结果是具有该名称的用户。在Spring Boot中是否可以按名称创建查询,其中输入是名称列表,输出是用户列表,其中每个用户至少对应于列表中的一个名称?例如: 我也试过这样的方法,但是行不通。

  • 问题内容: 有没有一种方法可以在Java中随机获取HashMap的值? 问题答案: 这有效: 如果您希望随机值不是类型,只需在最后一行添加强制类型转换即可。因此,如果声明为: 最后一行可以是: 下面的代码 无效 ,总是返回s 数组,不能将其强制转换为。

  • 问题内容: 现在我正在做: 有没有更有效的方法直接从Find(或其他搜索功能)中获取带有用户名的slice,而没有struct和range循环? 问题答案: MongoDB的结果始终是文档列表。因此,如果要获取值列表,则必须像以前一样手动将其转换。 使用自定义类型(源自) 另外请注意,如果您要创建自己的类型(从派生),则可以覆盖其取消编组逻辑,并仅从文档中“提取” 。 它看起来像这样: 然后将用户

  • 问题内容: 嗨,我想使用WMI类来查找应用程序和产品信息。但是问题是我想使用Java或任何脚本语言(如python,javascript或perl)。我听说过JWMI,这可能是一个选择。有人可以帮我吗??? 问题答案: JavaScript和Java不是一回事。 JavaScript Windows脚本宿主(WSH)下提供了JavaScript。有了它,访问WMI相当容易: jWMI(Java)

  • 问题内容: 我正在编写小型且非常干燥的框架,该框架高度依赖元数据。我想知道是否有一种方法来获取方法参数名称,即给定一些方法 得到的字符串和。 我知道我可以注释参数,但是那不是很好。 问题答案: 我们为包含参数名称的String[]的方法创建了一个自定义注释。与必须注释每个单独的参数相比,此方法感觉易于管理。我们计划添加构建时检查,以确保带注释的参数名称的数量与参数的数量匹配,因为这是我们所需要的。