Definindo a seleção do Spinner por valor, não por posição
Ao atualizar uma visualização e a seleção do Spinner deve corresponder a um valor armazenado no banco de dados, o A abordagem convencional é localizar a posição correspondente usando um método indexOf no Adaptador. No entanto, esta abordagem encontra um obstáculo, pois o Adaptador não fornece tal método.
Para superar esse desafio, uma abordagem mais adequada é utilizar o método getPosition do ArrayAdapter. Este método, quando combinado com um ArrayAdapter adequado, permite a identificação da posição associada a um valor específico.
Considere um cenário onde o Spinner denominado mSpinner contém um valor de "algum valor". Para localizar e comparar sua posição, siga estas etapas:
Crie um ArrayAdapter a partir do arquivo de recurso R.array.select_state:
ArrayAdapter adapter = ArrayAdapter.createFromResource(this, R.array.select_state, android.R.layout.simple_spinner_item);
Defina o adaptador do Spinner e DropDownViewResource:
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
mSpinner.setAdapter(adapter);
Em seguida, se o valor a ser comparado (compareValue) não for nulo:
if (compareValue != null) {
int spinnerPosition = adapter.getPosition(compareValue);
mSpinner.setSelection(spinnerPosition);
}
Ao empregar essa abordagem, a seleção do Spinner pode ser definida com precisão com base no valor armazenado no banco de dados, proporcionando uma experiência de usuário perfeita durante as atualizações da visualização.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3