Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java AutoCompleteTextView-选择名称时获取Id_Java_Android_Autocompletetextview - Fatal编程技术网

Java AutoCompleteTextView-选择名称时获取Id

Java AutoCompleteTextView-选择名称时获取Id,java,android,autocompletetextview,Java,Android,Autocompletetextview,我从api(我存储在模型中的带有Id的名称列表)获取值-如何将此名称设置为自动完成,并在下拉选择中获取名称和Id。 这将在autocomplete中设置名称,并在onItemClick中获取名称,但如何获取ID 模型类 public class MeetingContactModel implements Serializable { private String id; private String text; public String g

我从api(我存储在模型中的带有Id的名称列表)获取值-如何将此名称设置为自动完成,并在下拉选择中获取名称和Id。 这将在autocomplete中设置名称,并在onItemClick中获取名称,但如何获取ID

模型类

public class MeetingContactModel implements Serializable {

        private String id;
        private String text;

        public String getId() {
            return id;
        }

        public void setId(String id) {
            this.id = id;
        }

        public String getText() {
            return text;
        }

        public void setText(String text) {
            this.text = text;
        }
}
MyActivity类 一旦创建: 调用自动完成适配器

setMeetingContactAuto(autoContact, contactList);

autoContact.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                strContact =(String) parent.getItemAtPosition(position);
//                strContactCode = code.get(position);
            }
        });

private void setMeetingContactAuto(AutoCompleteTextView autoContact, final ArrayList<MeetingContactModel> xcontactList) {

        List<String> names = new AbstractList<String>() {
            @Override
            public int size() { return xcontactList.size(); }

            @Override
            public String get(int i) {
                code.clear();
                code.add(xcontactList.get(i).getText());
                return xcontactList.get(i).getText();
            }
        };
        autoContact.setThreshold(1);
        autoContact.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, names));
    }
setMeetingContactAuto(自动联系,联系人列表);
autoContact.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
strContact=(字符串)parent.getItemAtPosition(位置);
//strContactCode=code.get(位置);
}
});
private void SetMeeting ContactAuto(自动完成文本视图自动连接,最终ArrayList xcontactList){
列表名称=新的AbstractList(){
@凌驾
public int size(){return xcontactList.size();}
@凌驾
公共字符串get(int i){
code.clear();
add(xcontactList.get(i.getText());
返回xcontactList.get(i.getText();
}
};
自动联系设置阈值(1);
setAdapter(新的ArrayAdapter(这个,android.R.layout.simple_list_item_1,names));
}
无法获取Id-请让我知道如何获取它

在模型类中实现toString()方法

 public class MeetingContactModel implements Serializable {

    private String id;
    private String text;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getText() {
        return text;
    }

    public void setText(String text) {
        this.text = text;
    }

    @Override
    public String toString() {
        return text;
    }

}


 // Fetch your selected model
 autoContact.setAdapter(new ArrayAdapter<>(requireContext(),  R.layout.spinner_item_ranking, contactList));
 autoContact.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
             MeetingContactModel m=(MeetingContactModel) parent.getItem(position);
             String name=m.getText();
             String id=m.getId();
            }
        });
公共类MeetingContactModel实现可序列化{
私有字符串id;
私有字符串文本;
公共字符串getId(){
返回id;
}
公共无效集合id(字符串id){
this.id=id;
}
公共字符串getText(){
返回文本;
}
公共void setText(字符串文本){
this.text=文本;
}
@凌驾
公共字符串toString(){
返回文本;
}
}
//获取您选择的模型
setAdapter(新的ArrayAdapter(requireContext(),R.layout.spinner\u item\u ranking,contactList));
autoContact.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
MeetingContactModel m=(MeetingContactModel)parent.getItem(position);
String name=m.getText();
字符串id=m.getId();
}
});

您是否遇到任何错误为AutoCompleteTextView创建自定义适配器
“但是如何获取ID”
?查看传递给
onItemClick
method的最后一个参数如何更改为
parent.getItemAtPosition(position)
contactList.get(position).getId()
@Emil OP说:
“这将在自动完成中设置名称,并在onItemClick中获取名称,但如何获取ID?”
-所以我想他想把ID放在里面
onimclick
会试试这个&让你知道MeetingContactModel m=(MeetingContactModel)parent.getItem(position);它显示一个异常,因为无法解析方法“getItem(int)”!!!有什么想法吗?将getItem(int)更改为getItemAtPosition(int)后,它就可以工作了-谢谢@RajasekaranM@ArnoldBrown如果有效,接受答案并向上投票。@ArnoldBrown您可以从适配器对象调用
getItem()
。这就是为什么它会出现。为适配器创建对象并调用`getItem(位置)