我有这个Adapter类(ItemListAdapter)来显示项目列表。但在该视图中,我将位置0项文本设置为粗体。现在我需要创建一个单独的ItemResultsListAdapter,但是我不需要将位置0元素设置为粗体。这应该是正常的。
我需要创建ItemResultsListAdapter
扩展ItemListAdapter
。请帮我这样做。
这是ItemListAdapter
public class ItemListAdapter extends ArrayAdapter<Items> {
private List<Items> items;
private final Context context;
public ItemListAdapter(@NonNull Context context, @NonNull List<Items> items) {
super(context, 0, items);
this.context = context;
this.items = items;
}
@NonNull
@Override
public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View rowView = inflater.inflate(R.layout.list_item, parent, false);
TextView textView = (TextView) rowView.findViewById(R.id.item_name);
if(items.get(position).getCategory().equals("COMPANY")) {
textView.setText(items.get(position).getName());
} else {
textView.setText(items.get(position).getFirst_name() + " "
+ items.get(position).getLast_name());
}
if (position == 0) {
textView.setTypeface(null, Typeface.BOLD);
}
return rowView;
}
}
我需要扩展这个类并创建ItemResultsListAdapter。
答案 0 :(得分:0)
我之所以需要做的是减少代码重复。这是我找到的最终解决方案。
public class ItemResultsAdapter extends ItemListAdapter {
public ItemResultsAdapter(@NonNull Context context, @NonNull List<Items> items) {
super(context, items);
}
@NonNull
@Override
public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
View rowView = super.getView(position,convertView,parent);
if (position == 0) {
TextView textView = (TextView) rowView.findViewById(R.id.connection_name);
textView.setTypeface(null, Typeface.NORMAL);
}
return rowView;
}
}