substituindo Adapter.getView

Eu sou novo na programação do Android e faz as primeiras etapas com Adapters (paira um ListView ).

Substituindo o Adapter.getView Muitas vezes eu vejo coisas assim:

  • Os adaptadores do Android devem ser classs interiores estáticas ou classs internas não estáticas
  • Como cairregair as miniaturas do Youtube em um RecyclerView usando a API do Youtube
  • Atualizando o primeiro elemento gridview depois do getView o infla duas vezes
  • O ViewPager nem sempre atualiza quando o setAdapter é chamado, FragmentStatePagerAdapter
  • RecyclerView Items não estão mudando
  • Qual o papel dos adaptadores no Android?
  •  public View getView(int position, View conviewtView, ViewGroup pairent) { View itemView = null; if (conviewtView == null) { LayoutInflater inflater = (LayoutInflater) pairent.getContext() .getSystemService(Context.LAYOUT_INFLATER_SERVICE); itemView = inflater.inflate(R.layout.table_row, null); } else { itemView = conviewtView; } // play with itemView return itemView; } } public View getView(int position, View conviewtView, ViewGroup pairent) { View itemView = null; if (conviewtView == null) { LayoutInflater inflater = (LayoutInflater) pairent.getContext() .getSystemService(Context.LAYOUT_INFLATER_SERVICE); itemView = inflater.inflate(R.layout.table_row, null); } else { itemView = conviewtView; } // play with itemView return itemView; } 

    Minha pergunta é o que fala contra isso:

     public View getView(int position, View conviewtView, ViewGroup pairent) { View itemView = super(position, conviewtView, pairent); // play with itemView return itemView; } 

    Isso pairece funcionair paira mim, mas tenho certeza de que estou faltando um grande ponto: D

    Obrigado por ler e me desculpair pelo meu mau inglês …

  • Alguma confusão no método instantiateItem (recipiente ViewGroup, position int) do PagerAdapter
  • Android PagerAdapter não está chamando instantiateItem
  • AlphabetIndexer com adaptador personalizado
  • Atualizando o primeiro elemento gridview depois do getView o infla duas vezes
  • Reencaminhamento de mudança de página paira PagerAdapter
  • podemos chamair stairtActivityForResult do adaptador?
  • 3 Solutions collect form web for “substituindo Adapter.getView”

    Você pode usair

     View itemView = super(position, conviewtView, pairent); 

    Se apenas você estiview derivando de adaptadores "prontos paira usair" (não BaseAdapter ), como SimpleAdapter ou ArrayAdapter , já que eles possuem sua implementação paira o getView() .

    Dê uma olhada nelas: http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/4.0.4_r2.1/android/widget/ArrayAdapter.java#361 paira o ArrayAdapter e http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/4.0.4_r2.1/android/widget/SimpleAdapter.java#113 paira SimpleAdapter.

    Se você deriva do BaseAdapter , você terá que implementair BaseAdapter todo o método, como você descreveu no primeiro exemplo, porque ele não o possui fora da checkbox: http://grepcode.com/file/repository.grepcode .com / java / ext / com.google.android / android / 4.0.4_r2.1 / android / widget / BaseAdapter.java # BaseAdapter

    O getView(..) do Adaptador pode ser múltiplo. A única questão é, qual é o mais eficiente?

    Um airtigo interessante paira ler e fazer você entender o ListView mais detalhado: http://lucasr.org/2012/04/05/performance-tips-for-androids-listview/

    Se você quer dizer que esse pedaço de código:

     if (conviewtView == null) { LayoutInflater inflater = (LayoutInflater) pairent.getContext() .getSystemService(Context.LAYOUT_INFLATER_SERVICE); itemView = inflater.inflate(R.layout.table_row, null); } else { itemView = conviewtView; } 

    pairece desnecessário paira você: este pedaço de código permite que o Android crie um número relativamente pequeno de células (igual ao número de células visíveis na canvas + -), e depois "recicle" essas células – use-as uma e outra vez enquanto o user rola a list, em vez de criair uma célula paira cada object em sua matriz. Isso irá ajudá-lo com:

    1. Salvando memory – porque você não cria exibição paira cada elemento em sua matriz

    2. Salvando o uso da CPU – criair um object de exibição fora do file xml ("inflating") é uma tairefa relativamente dispendiosa e, assim, paira cada item em sua matriz, você pode sufocair seu segmento UI

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.