Android Spinner用对象填充

时间:2018-07-28 04:19:03

标签: java android

如何为微调框填充对象。

示例:我有用户对象userId,userName,firstName,lastName。我需要用firstName填充显示微调框。如果用户选择,我需要获取userId。

    private void fillUserSpinner() {
            spinnerUserList = findViewById(R.id.spinnerUserList);
            ArrayAdapter<String> arrayAdapter = new ArrayAdapter<>(this,
                    android.R.layout.simple_dropdown_item_1line, userDbHelp.gteUserIds());
            spinnerUserList.setAdapter(arrayAdapter);
        }


    private void onUserSelected() {
            spinnerUserList = findViewById(R.id.spinnerUserList);
            spinnerUserList.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
                @Override
                public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
//Need to get selected userId
                }

                @Override
                public void onNothingSelected(AdapterView<?> adapterView) {

                }
            });
        }

2 个答案:

答案 0 :(得分:2)

您只想显示名字,请将此代码添加到模型类中:

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

答案 1 :(得分:0)

AppCompatSpinner一起使用ArrayAdapter ... 如果该ArrayAdapter的项目(POJO)覆盖了方法toString(),则可以跳过手动分配;然后将显示微调框项目的文本。

@Override
public String toString() {
    return this.firstName;
}