Ich bin daran interessiert, einen generischen BaseAdapter zu erstellen, der auf jedes ListView mit einem list_item angewendet wird. Und es wird die item_row für die list_view setzen.Erstellen Sie einen generischen Basisadapter?
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;
}
Ich denke, ich muss eine Schnittstelle erstellen, die erhalten und die item_row für einzelne Artikel festlegen. Aber ich weiß nicht, dass es möglich ist. Kann mir jemand sagen, wie ich es erreichen kann?
Meine Idee ist es, eine Schnittstelle zu erstellen, und GenericAdapter implementiert diese Schnittstelle. In dieser Schnittstelle gibt es eine Methode, um item_row zu erhalten und zu setzen. Jede Klasse, die GenericAdapter erweitert, muss diese Methode implementieren. Es wird uns helfen, einen generischen Adapter zu machen.
Wenn wir diesen Adapter erweitern, müssen wir nicht den gesamten Code wie getCount, getItem, getItemId schreiben, wir müssen nur eine Funktion überschreiben, die inflationLayout ist. die
Vielen Dank im Voraus innerhalb getView sein muss
Wenn Sie nicht über benutzerdefinierte Adapter schreiben wollen prüfen, mit eine vorhandene Bibliothek, wie https://github.com/ribot/easy-adapter oder http://amigold.github.io/FunDapter/ – CommonsWare
Siehe [Generic Adapter] (https://github.com/sa jadshokri/Core-Adapter) – FarshidABZ