2013-06-05 6 views
5

Desidero utilizzare un flusso di dettaglio master con un GridView sul lato sinistro (master). Secondo the documentation, GridView ha un metodo setItemChecked(position, value) che è stata aggiunta a livello di API 1. Eclipse tuttavia afferma che il metodo richiede livello di API 11.GridView.setItemChecked (posizione, valore)

Quale è vero? Se voglio avere gli elementi selezionati nel mio GridView, devo implementare la logica (con modifiche in background, ecc.)?

risposta

5

Dalla mia esperienza, la documentazione ufficiale è errata.

AbsListView.setItemChecked(position, value) esiste solo da HoneyComb (API 11) in poi. Ciò che lo rende confuso è che ListView.setItemChecked(position, value) esisteva dall'API 1 mentre lo GridView.setItemChecked(position, value) no. Penso che sia stato solo cattiva progettazione API che è stato fissato in 11. API

Forse è a causa di una limitazione del generatore di documentazione perché il metodo è stato spostato in alto nella catena di ereditarietà per AbsListView in API 11. Il metodo in AbsListView dovrebbe essere contrassegnato come Added in API level 11 mentre il metodo in ListView deve essere contrassegnato come Added in API level 1.

Non l'ho usato ma qualcuno ha creato un GridViewCompat per risolvere questo problema. https://github.com/paramvir-b/AndroidGridViewCompatLib

0

Credo che la documentazione sia errata. Test su un emulatore, il metodo non era disponibile al livello API 8. Ciò vale per tutti gli estensioni del metodo setListView() AbsListView per quanto posso dire (ListView ecc.). Penso che sia sicuro assumere che sia disponibile solo a livello di API 11+

Problemi correlati