Czy istnieje sposób, aby uzyskać identyfikator zasobów (jak R.layout.viewtoInflate) z układu, z którego widok był zawyżone?Uzyskaj identyfikator zasobu, z którego widok był zawyżone
Próbuję zaimplementować widoku listy, który używa 2 niestandardowych układów dla elementów listy. Który układ elementów jest używany, opiera się na polu w obiektach używanych do wypełnienia widoku listy.
Co mi brakuje w moim niestandardowego adaptera jest sposobem, aby wiedzieć, co Resource „convertView” ja dostać w getView() była zawyżona z. Gdybym mógł uzyskać te informacje, mógłbym porównać i ustalić, czy mogę ponownie użyć widoku konwersji, czy też muszę go zastąpić odpowiednim układem dla bieżącego elementu.
więc idealnie byłoby coś takiego: Widoki
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
JSONObject currItem = mItems.getJSONObject(position);
int layoutType;
if (currItem.getBoolean("alternate"))
layoutType = R.layout.list_item_b;
else
layoutType = R.layout.list_item_a;
if (convertView == null || <convertView.resourceID> != layoutType) {
convertView = inflater.inflate(layoutType, null);
//Finish setting up new View and its holder
}
else {
//Get view holder for view reuse
}
//populate view with the required content
return convertView;
}
W najgorszym wypadku nie mogłem po prostu re-use w ogóle i po prostu napompować układ muszę za każdym razem, ale wydaje się bardzo rozrzutny.
Nie rozumiem, jak tęskniłem za funkcjonalnością wielu układów, ale dziękuję. Dziękuję również za sugestię znalezienia typu układu, który nie jest już potrzebny na razie, ale i tak dobrze wiedzieć. Mimo to wydaje mi się dziwne, że nie ma oficjalnego sposobu na uzyskanie układu zawyżonego widoku. – RobertoCuba