【问题标题】:Using SearchableSpinner with Custom Adapter in Android在 Android 中使用 SearchableSpinner 和自定义适配器
【发布时间】:2020-05-06 15:42:32
【问题描述】:

我在我的 Android 项目和我的 SearchableSpinner 中使用 ‍‍SearchableSpinner,我使用了两个文本视图,所以我制作了一个自定义适配器。当我点击 SearchableSpinner 时,数据显示不正确。

这是我的自定义适配器代码。我在自定义适配器中使用 getView 和 getDropDownview。

private ArrayList<University> universityList;
private Activity context;

public UniversityListAdapterForUploadPage(ArrayList<University> universityList, Activity context){
    super(context,R.layout.university_list_row_for_spinner,universityList);
    this.universityList = universityList;
    this.context = context;
}

@NonNull
@Override
public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {

    LayoutInflater layoutInflater = context.getLayoutInflater();
    View customView = layoutInflater.inflate(R.layout.university_list_row_for_spinner,null,true);

    TextView universityIDText  = customView.findViewById(R.id.universityID_textView_for_spinner);
    TextView universityNameText = customView.findViewById(R.id.university_name_textView_for_spinner);

    University university = universityList.get(position);

    universityIDText.setText(university.getUniversityID()+"");
    universityNameText.setText(university.getUniversityName());

    return customView;
}

@Override
public View getDropDownView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
    LayoutInflater layoutInflater = context.getLayoutInflater();
    View customView = layoutInflater.inflate(R.layout.university_list_row_for_spinner,null,true);

    TextView universityIDText  = customView.findViewById(R.id.universityID_textView_for_spinner);
    TextView universityNameText = customView.findViewById(R.id.university_name_textView_for_spinner);

    University university = universityList.get(position);

    universityIDText.setText(university.getUniversityID()+"");
    universityNameText.setText(university.getUniversityName());

    return customView;
}

我需要帮助。

【问题讨论】:

    标签: android spinner custom-adapter getview


    【解决方案1】:
    universityIDText.setText(university.getUniversityID()+"");
    universityNameText.setText(university.getUniversityName());
    

    这两个调用没有传递String。您正在传递一个 java 对象 ID

    【讨论】:

    • 其实我在这里传递字符串值:university.getUniversityName()
    • 是的,它在技术上是一个字符串,但我的意思是您传递的是 Java ID 的字符串表示形式,而不是 Java 对象值的字符串
    • 好吧,我做了这样的,但它没有用: String universityName = university.getUniversityName();大学名称文本.setText(大学名称);它也适用于普通 Spinner 和 ListView
    【解决方案2】:

    @Override toString() 在你的模型中 将此添加到您的模型类中..希望它会有所帮助..

    public String toString(){
        return universityName;
    }
    

    【讨论】:

      猜你喜欢
      • 2016-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-28
      • 2015-03-31
      • 2021-03-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多