java - 获取自定义 ArrayAdapter(Spinner) 中项目的位置
问题描述
我保存用户选择,并希望在用户返回活动时通过自动选择微调器项目来显示用户选择的项目。
类型CustomArrayAdapter
public class TypesCustomArrayAdapter extends ArrayAdapter<String> {
private final LayoutInflater mInflater;
private final Context mContext;
private final List<TypesSpinnerItemObject> items;
private final int mResource;
public TypesCustomArrayAdapter(@NonNull Context context, @LayoutRes int resource,
@NonNull List objects) {
super(context, resource, 0, objects);
mContext = context;
mInflater = LayoutInflater.from(context);
mResource = resource;
items = objects;
}
@Override
public View getDropDownView(int position, @Nullable View convertView,
@NonNull ViewGroup parent) {
return createItemView(position, convertView, parent);
}
@Override
public @NonNull View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
return createItemView(position, convertView, parent);
}
private View createItemView(int position, View convertView, ViewGroup parent){
final View view = mInflater.inflate(mResource, parent, false);
TextView txtName = (TextView) view.findViewById(R.id.name);
TextView txtId = (TextView) view.findViewById(R.id.code);
TypesSpinnerItemObject item = items.get(position);
txtName.setText(item.Name);
txtId.setText(item.Id);
return view;
}
我如何填充微调器
ArrayAdapter vaziatSokonatAdapter = TypesCustomArrayAdapter(VillageInputActivity.this, R.layout.item_types_spinner, response.body());`
保存用户选择:
Object ss = mySpinner.getSelectedItem();
Gson gson = new Gson();
String json = gson.toJson(ss);
SharedPreferences.Editor editor = getSharedPreferences("ss", MODE_PRIVATE).edit();
editor.putString("ss", json);
editor.apply();
我如何尝试更改微调器的选定项目:
SharedPreferences sh = getSharedPreferences("ss", MODE_PRIVATE);
String ss= sh.getString("ss", "");
Gson gson = new Gson();
Object ss = gson.fromJson(ss, mySpinner.getSelectedItem().getClass());
mySpinner.setSelection(vaziatSokonatAdapter.getPosition(ss));
但 vaziatSokonatAdapter.getPosition(ss) 返回 -1
解决方案
推荐阅读
- nexus - nexus yum repo 元数据构建完成时是否有标志?
- python - python-pptx 的 fit_text() 有问题
- asp.net-core-mvc - 视图中的 Asp.net Core 2.1 MVC 解码
- c# - .NET,C#:RazorEngine,从项目文件夹中解析模板 CsHtml 文件
- javascript - 在大型画廊中一次加载一张图片
- stored-procedures - Tableau 中动态更新的存储过程?
- python - 如何在 Python 中使用 Selenium 动态生成多个 div
- arrays - 当传递给 Fortran 中的子例程时,数组是否被视为指针?
- php - 查找 PHP 中活着的人数最多的年份
- java - 如何将域类从 jar 导入 Micronaut 项目?