Android 使用从AutoCompleteTextView中选择的项目的相应数据设置隐藏字段的值

Android 使用从AutoCompleteTextView中选择的项目的相应数据设置隐藏字段的值,android,json,android-edittext,autocompletetextview,Android,Json,Android Edittext,Autocompletetextview,我有一个AutoCompleteTextView,当文本发生变化时,通过调用api,使用onTextChanged来建议MySQL数据库中存储的位置名称。响应是JSON数组,包含许多项,如地点\名称、id、位置\键、查询\类型、请求\类型等(每个项都有其不同的用途)。我有3个隐藏的编辑文本字段。在setOnItemClickListener上,当用户选择地名时,我希望这3个隐藏字段的值自动设置为location\u key、query\u type和request\u type,因为我需要将这3

我有一个
AutoCompleteTextView
,当文本发生变化时,通过调用api,使用
onTextChanged
来建议MySQL数据库中存储的位置名称。响应是JSON数组,包含许多项,如地点\名称、id、位置\键、查询\类型、请求\类型等(每个项都有其不同的用途)。我有3个隐藏的编辑文本字段。在
setOnItemClickListener
上,当用户选择地名时,我希望这3个隐藏字段的值自动设置为location\u key、query\u type和request\u type,因为我需要将这3个值与地名一起发送,以从api获得所需的结果。

将这些字段的可见性设置为gone

 txtview.setVisibility(View.GONE);
当你想让它们可见时,使用

 txtPromo.setVisibility(View.VISIBLE);

单击place_name字段后,隐藏的EditText将获得需要发送到数据库的值。这可以通过执行以下操作轻松实现:

textMessage.addTextChangedListener(new TextWatcher(){
    public void afterTextChanged(Editable s) {
        if (textMessage == "//Name of place") {
            editText1.setText "//whatever you need";
            editText2.setText "//whatever you need";
            editText3.setText "//whatever you need";
        }
    }
}); 
或者,我将使用微调器作为地名,并将其编码为类似的内容:

@凌驾 公共void onClick(视图arg0){


希望这有帮助:)

我不是在问如何隐藏EditText字段,我是在问当用户从“自动完成”视图中选择项目时,如何使用与所选项目相对应的其他数据填充这些隐藏字段。这不是问题所在。EditText已被隐藏。有什么问题吗?您尝试了什么,发生了什么错误?发布一些您尝试过的代码,以便我们对其进行改进。为什么您将这些信息存储在隐藏字段中,而不仅仅是Activity/Fragment的类成员变量?这个答案对您有帮助吗?没有,我最终使用了自定义AutoCompleteTextView和set valueaccordingly@carefree你能展示一下你是怎么做的吗?自己回答这个问题plz:)
    int range = spnDonate.getSelectedItemPosition();

    Donator_Name = tboxName.getText().toString();
    switch(range) {
        case 0:
            editText1.setText = "//whatever you need";
            editText2.setText = "//whatever you need";
            editText3.setText = "//whatever you need";
            break;
        case 1:
            editText1.setText = "//whatever you need";
            editText2.setText = "//whatever you need";
            editText3.setText = "//whatever you need";
            break;
        case 2:
            editText1.setText = "//whatever you need";
            editText2.setText = "//whatever you need";
            editText3.setText = "//whatever you need";
            break;
    }
}