在 Android 中使用 SearchableSpinner 和自定义适配器
Posted
技术标签:
【中文标题】在 Android 中使用 SearchableSpinner 和自定义适配器【英文标题】:Using SearchableSpinner with Custom Adapter in Android 【发布时间】: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;
我需要帮助。
【问题讨论】:
【参考方案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;
【讨论】:
以上是关于在 Android 中使用 SearchableSpinner 和自定义适配器的主要内容,如果未能解决你的问题,请参考以下文章
如何在 android 应用程序中使用 OSM 地图。?有啥教程可以学习在android中使用OSM吗?
在 Android 中使用 Intent 在活动中传递 android 位图数据
无法在 Android 中使用 Android Crop 图像裁剪库