0

Ich habe eine AdapterTeilen recylerview adpter mit Subklasse

SearchAdapter.java:

public class SearchAdapter extends RecyclerView.Adapter<SearchAdapter.ViewHolder> { 
private Context mContext; 
private LayoutInflater inflater; 
private final List<Category> mDataset; 

public SearchAdapter(Context c, List<Category> categoryList) { 
    mContext = c; 
    inflater = LayoutInflater.from(c); 
    mDataset= categoryList; 
} 

@Override 
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { 
    return new ViewHolder(LayoutInflater.from(parent.getContext()) 
      .inflate(R.layout.item_search_category, parent, false)); 
} 

@Override 
public void onBindViewHolder(final ViewHolder holder, final int position) { 
    holder.textView_category.setText(mDataset.get(position).getName()); 
} 

static class ViewHolder extends RecyclerView.ViewHolder { 
    private Button button_sub; 
    private TextView textView_category, textView_subCategory; 

    public ViewHolder(View itemView) { 
     super(itemView); 
     ... 
    } 
} 

Category.java:

public class Category { 

private Integer id; 
private String name; 
private String image; 
private String createdAt; 
private String updatedAt; 
private List<Subcategory> subcategories = new ArrayList<Subcategory>(); 

/**getter and setter**/ 

} 

SubCategory.java (erstreckende category.java):

public class Subcategory extends Category { 

private String categoryId; 

/**getter and setter**/ 
} 

Ich kann crea Die neue Instanz von SearchAdapter ohne Probleme.

mAdapter = new SearchAdapter(rootView.getContext(), categoryList); 

Allerdings kann ich die SubCategory-Liste nicht an den Adapter übergeben, obwohl er von Category geerbt wurde.

mAdapter = new SearchAdapter(rootView.getContext(), subCategoryList); 

UPDATE: Es folgt die Fehlermeldung erhalte ich:

ERWARTET Paramter: KATEGORIE - ACTUAL ARGUMENTE: SUBCATEGORY

Jede Hilfe sehr viel

geschätzt
+0

Was bedeutet „ich nicht kann“ genau bedeuten? Fehlermeldung bei der Kompilierung oder Laufzeit? Ergebnis abweichend vom erwarteten Ergebnis? – TAM

+1

Sie müssen Cast SubCategoryList in CategoryList eingeben – penguin

Antwort

1

versuchen Sie dies:

mAdapter = new SearchAdapter(rootView.getContext(), (Category)subCategoryList); 
0

Ich habe eine Lösung gefunden dank dem Vorschlag von Ashis Tiwari.

Seit seiner einer Liste, muss ich anders warf es wie folgt ein:

List<Category> subCategoryList = (List<Category>)(List<?>) item.getSubcategories();