Qual é o papel dos adaptadores no Android?


123

Quero saber quando , onde e como os adaptadores são usados ​​no contexto do Android.

As informações da documentação do desenvolvedor do Android eram insuficientes para mim e eu gostaria de obter uma análise mais detalhada.

Respostas:


29

Vamos supor que você queira exibir uma lista no seu aplicativo Android. Para isso, você usará o ListViewfornecido pelo Android. ListViewNa verdade, eles não contêm dados. É apenas um elemento da interface do usuário sem dados. Você pode preencher seus ListViews usando um adaptador Android.

Adapteré uma interface cujas implementações fornecem dados e controlam a exibição desses dados. ListViewadaptadores próprios que controlam completamente a ListViewtela do monitor. Portanto, os adaptadores controlam o conteúdo exibido na lista e também como exibi-lo.

A Adapterinterface inclui vários métodos para comunicar dados ao ListView. Você pode criar seu próprio adaptador do zero implementando BaseAdapter.

public class ArrayAdapter<T> extends BaseAdapter implements Filterable {

// One of the constructors
public ArrayAdapter(Context context, int resource, int textViewResourceId, T[] objects) {
    init(context, resource, textViewResourceId, Arrays.asList(objects));
}

void manyMoreMethods(){} 

}

Vamos definir um adaptador:

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
   android.R.layout.simple_list_item_1, android.R.id.text1, values);
  • Primeiro parâmetro: Contexto
  • Segundo parâmetro: Layout da linha
  • Terceiro parâmetro: ID do TextViewqual os dados são gravados
  • Quarto parâmetro: a matriz de dados

45

Os adaptadores de poço no Android são basicamente uma ponte entre os componentes da interface do usuário e a fonte de dados que preenche os dados no componente da interface do usuário

Por exemplo, listas (componente de interface do usuário) são preenchidas usando um adaptador de lista, de uma matriz de fonte de dados.


21
Esta é a mesma informação que posso obter da documentação. Mas eu quero uma explicação detalhada
Robin

25

Eu gostaria de compartilhar meu entendimento.

É uma interface entre a fonte de dados e seu layout (provavelmente o ListView).

Uma analogia

Vamos dar o exemplo de um carregador de celular, ou melhor, de um cabo USB. O fio pode ser considerado como o adaptador, enquanto a fonte e o layout dos dados podem ser entendidos como soquete (ponto de plug-in) e porta USB (ponto de carregamento), respectivamente.

No caso de carregamento móvel, a fonte de energia pode ser diferente, por exemplo, carregamento de um banco de energia, uma tomada ou um laptop. O mesmo é o caso dos adaptadores usados ​​no Android. A fonte de dados pode ser alterada dependendo dos requisitos do aplicativo.

Em resumo, um adaptador no Android carrega os dados de uma fonte (por exemplo ArrayList<>) e os entrega para um layout (arquivo .xml).


2
O melhor exemplo até agora: D Bom trabalho!
Daksh Gargas

8

Os adaptadores no Android são uma ponte entre a visualização do adaptador (por exemplo ListView) e os dados subjacentes a essa visualização. Imagine o que o mundo teria sido sem adaptadores!

Exemplos

  • Uma exibição que mostra itens em uma lista de rolagem vertical. Os itens vêm do ListAdapterassociado a esta visualização.

  • O ListAdapterdefine o layout para linhas individuais da lista e fornece dados para ListViewo setAdapter()método ListView.

  • O Android fornece vários adaptadores padrão; os mais importantes são ArrayAdaptere CursorAdapter.

  • ArrayAdapter pode manipular dados com base em matrizes ou listas.

  • SimpleCursorAdapter pode lidar com dados relacionados ao banco de dados.

4

Os adaptadores são basicamente usados ​​para fornecer conteúdo. Um adaptador que você provavelmente possui em cada aplicativo é o CursorAdapter, que permite entregar o conteúdo fornecido por um cursor a partir de uma consulta ao banco de dados. Um ListView quase sempre tem algum tipo de adaptador.


7
Esta é a mesma informação que posso obter da documentação. Mas eu quero uma explicação detalhada
Robin

@ Robin: por que você não comemora os 10 anos da sua pergunta "aceitando" uma das respostas. Pessoalmente: 1) achei sua pergunta valiosa (foi assim que acabei aqui), 2) achei muitas dessas respostas úteis (incluindo essa) ... e 3) não faço ideia do que você quer dizer com " uma explicação mais detalhada ". Talvez seja porque estou mais interessado no "porquê" (como explicado acima) .; Estou mais interessado na "floresta" (como a resposta de WarrenFaith) do que nas "árvores detalhadas" (que POSSO obter da documentação). Voto por favor e aceite :)
FoggyDay

4

Um adaptador atua como uma ponte entre um AdapterViewe os dados subjacentes para essa visualização. O adaptador fornece acesso aos itens de dados e é responsável por criar uma visualização para cada item no conjunto de dados.

Os adaptadores são uma maneira inteligente de conectar um Viewa algum tipo de fonte de dados. Normalmente, sua visão seria um ListViewe os dados viriam na forma de um Cursorou Array. Portanto, os adaptadores vêm como subclasses de CursorAdapterou ArrayAdapter.


2

Um adaptador gerencia o modelo de dados e o adapta às linhas individuais na visualização de lista. Estende a BaseAdapterclasse.

Cada linha na exibição de lista consiste em um layout que pode ser tão complexo quanto você desejar. Uma linha típica em uma exibição de lista tem uma imagem no lado esquerdo e duas linhas de texto no meio.


0

O adaptador é simplesmente usado para alcançar o conceito de listview. Não apenas para exibir a lista de dados, mas também algumas visualizações personalizadas. Suponha que o cliente deseje usar a lista que possui mais número de visualizações de texto (qualquer outra visualização); então, precisamos usar a visualização do adaptador no Android.


0

Já existem várias respostas, mas quero dar uma resposta diferente.

Adaptador significa que você pode que seu provedor de ponte .

Adaptadores são o link entre um conjunto de dados e o AdapterView que exibe os dados.


0

No final, os adaptadores são muito úteis para fazer um relatório. Se alguém quiser mostrar um relatório de algumas informações, poderá usar esta ferramenta para mostrar os dados na exibição.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.