2017-11-02 6 views
-1

アイテムリストを表示するこのアダプタクラス(ItemListAdapter)があります。そのビューでは、position 0の項目テキストを太字に設定しています。別のItemResultsListAdapterを作成する必要がありますが、位置0の要素を太字に設定する必要はありません。それは正常であるはずです。ArrayAdapterから拡張されたカスタムアダプタを拡張する<Connection>

ItemListAdapterを延長するItemResultsListAdapterを作成する必要があります。これを手伝ってください。

これは、私はこのクラスを拡張し、ItemResultsListAdapterを作成する必要が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; 
} 
} 

です。

+0

なぜ別のアダプタを作成しますか?同じアダプタクラスを使用して、trueまたはfalseを設定してコンストラクタにパラメータをもう1つ渡すだけで、テキストを太字にすることができます。 – Munir

答えて

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; 
} 
} 
関連する問題