扩展从ArrayAdapter <connection>扩展的自定义适配器

时间:2017-11-02 07:49:30

标签: android listview arraylist

我有这个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。

1 个答案:

答案 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;
 }
}