When your Model isn't same for both of the two, then you can create a interface named CustomInterface and implement it to both of your models. Then in the adapter, instead of the model, use CustomInterface and in your getView, you have to check the current model like:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater theInflater = LayoutInflater.from(getContext());
View theView = theInflater.inflate(R.layout.custom_row, parent, false);
if(entity instanceof Obj1){
// Model 1
} else if(entity instanceof Obj2){
// Model 2
}
return theView;
}
Remember that, List works only for homogeneous collections. If you have heterogeneous collection, you can implement interface on all of the models and make a List of the interface and then can put any model within that list which implement same interface.