Sono interessato a creare un BaseAdapter generico che si applicherà a qualsiasi ListView con qualsiasi list_item. E imposterà item_row per la lista_vista.Creare un adattatore base generico?
public class GenericAdapter extends BaseAdapter
{
Context context;
ArrayList<HashMap<String, String>> list;
LayoutInflater inflater;
public GenericAdapter (Context context, ArrayList<HashMap<String, String>> list)
{
this.context = context;
this.list = list;
inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public int getCount()
{
return list.size();
}
@Override
public Object getItem(int position)
{
return list.get(position);
}
@Override
public long getItemId(int position)
{
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
View view = convertView;
if(view == null)
{
view = inflater.inflate(R.layout.item_of_any_list, parent, false);
// i have to do something here like there may be a method which must be call
}
/*HashMap<String, String> map = list.get(position);
TextView textViewName = (TextView) view.findViewById(R.id.name);
TextView textViewDate = (TextView) view.findViewById(R.id.date);
//TextView textViewDesc = (TextView) view.findViewById(R.id.desc);
textViewName.setText(map.get("name"));
textViewDate.setText(map.get("date"));
//textViewDesc.setText(map.get("description"));
*/
return view;
}
Penso di dover creare un'interfaccia che ottenga e imposti il item_row per il singolo oggetto. Ma non lo so, potrebbe essere possibile. Qualcuno può dirmi come posso raggiungerlo.
La mia idea è creare un'interfaccia e GenericAdapter implementa tale interfaccia. In quell'interfaccia c'è un metodo per ottenere e impostare item_row. Qualsiasi classe che estende GenericAdapter deve implementare tale metodo. ci aiuterà a creare un adattatore generico.
Quando estendiamo quell'adattatore non è necessario scrivere tutto il codice come getCount, getItem, getItemId, dobbiamo solo sovrascrivere una funzione che è quella di inflateLayout. che deve essere all'interno GetView
Grazie in anticipo
Se non si desidera scrivere adattatori personalizzati, considerare l'utilizzo di una libreria esistente, come https://github.com/ribot/easy-adapter o http://amigold.github.io/FunDapter/ – CommonsWare
Vedi questo [Adattatore generico] (https://github.com/sa jadshokri/Core-Adapter) – FarshidABZ