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

5
我有一个AutoCompleteTextView,通过调用api来建议存储在MySQL数据库中的地名,当文本更改时使用onTextChanged。响应是JSON数组,其中包含许多项,例如place_name、id、location_key、query_type、request_type等(每个都有自己不同的目的)。我有三个隐藏的EditText字段。当用户选择一个地名时,在setOnItemClickListener上,我希望这些3个隐藏字段的值会自动设置为location_key、query_type和request_type,因为我需要将这3个值与地名一起发送到api以获得所需的结果。

1
那问题出在哪里?你尝试了什么,出了什么问题? - Emanuel Moecklin
请发布一些您尝试过的代码,以便我们可以对其进行改进。 - ngrashia
为什么你要将那些信息存储在隐藏字段中,而不是存储在你的Activity/Fragment的类成员变量中? - Siebe
2个回答

0

一旦您点击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";
        }
    }
}); 

或者,我会使用一个Spinner来选择地名,并将其编码为类似于以下内容的代码:

@Override public void onClick(View arg0) {

    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;
    }
}

希望这能有所帮助 :)

这个答案对您有帮助吗? - Michele La Ferla
不,我最终使用了自定义的AutoCompleteTextView,并相应地设置了值。 - carefree
@carefree,你能展示一下你是如何做到的吗?请自己回答这个问题 :) - Abhigyan

-1

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

 txtview.setVisibility(View.GONE);

当你想让它们可见时,请使用

 txtPromo.setVisibility(View.VISIBLE);

我不是在问如何隐藏EditText字段,而是在问当用户从自动完成视图中选择一个项目时,如何填充这些隐藏字段与其他数据相对应的数据。 - carefree
1
这不是问题的关键。EditText已经被隐藏了。 - Michele La Ferla

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接