所以我花了将近3个小时来寻找如何使用pojo的阵列adapter将价值设置为旋转器的答案。
这是我的pojo:
public class ArchiveIssueModel implements Serializable {
private String Issues;
private String id;
private String Picture;
public ArchiveIssueModel(String issues, String id, String picture) {
Issues = issues;
this.id = id;
Picture = picture;
}
public ArchiveIssueModel() {
}
public ArchiveIssueModel(String issue) {
this.Issues = issue;
}
public String getIssues() {
return Issues;
}
public void setIssues(String issues) {
Issues = issues;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getPicture() {
return Picture;
}
public void setPicture(String picture) {
Picture = picture;
}
//to display object as a string in spinner
@Override
public String toString() {
return Issues;
}
@Override
public boolean equals(Object obj) {
if(obj instanceof ArchiveIssueModel){
ArchiveIssueModel c = (ArchiveIssueModel )obj;
if(c.getIssues().equals(Issues) && c.getId()== id ) return true;
}
return false;
}
我知道如何使用字符串的和阵列设置值。我这样做了,这很容易理解。
ArrayAdapter<String> spinnerArrayAdapter =
new ArrayAdapter<>(this,
android.R.layout.simple_spinner_item, yearList);
spinnerArrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
sp_year.setAdapter(spinnerArrayAdapter);
sp_year.setSelection(spinnerArrayAdapter.getPosition(year));
但是,如果ArrayAdapter O ArchiveIssueModel(即我的POJO(,我无法弄清楚如何为旋转器设置值。任何帮助,将不胜感激。ty:(
它与您写的相同,但仅提供适配器的POJO类列表。
ArrayList<ArchiveIssueModel> list = new ArrayList<>();
ArrayAdapter<ArchiveIssueModel> spinnerArrayAdapter =
new ArrayAdapter<ArchiveIssueModel>(getActivity(),
android.R.layout.simple_spinner_item, list);
spinnerArrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
sp_year.setAdapter(spinnerArrayAdapter);
// What it means?
sp_year.setSelection(spinnerArrayAdapter.getPosition(year));
我们需要定义适配器,以描述将Java对象转换为视图的过程(在GetView方法中(。对此的天真方法(没有任何视图缓存(看起来如下:
public class UsersAdapter extends ArrayAdapter<User> {
// View lookup cache
private static class ViewHolder {
TextView name;
TextView home;
}
public UsersAdapter(Context context, ArrayList<User> users) {
super(context, R.layout.item_user, users);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// Get the data item for this position
User user = getItem(position);
// Check if an existing view is being reused, otherwise inflate the view
ViewHolder viewHolder; // view lookup cache stored in tag
if (convertView == null) {
// If there's no view to re-use, inflate a brand new view for row
viewHolder = new ViewHolder();
LayoutInflater inflater = LayoutInflater.from(getContext());
convertView = inflater.inflate(R.layout.item_user, parent, false);
viewHolder.name = (TextView) convertView.findViewById(R.id.tvName);
viewHolder.home = (TextView) convertView.findViewById(R.id.tvHome);
// Cache the viewHolder object inside the fresh view
convertView.setTag(viewHolder);
} else {
// View is being recycled, retrieve the viewHolder object from tag
viewHolder = (ViewHolder) convertView.getTag();
}
// Populate the data from the data object via the viewHolder object
// into the template view.
viewHolder.name.setText(user.name);
viewHolder.home.setText(user.hometown);
// Return the completed view to render on screen
return convertView;
}
}
注意:将用户POJO更改为您的POJO类。