Idioma

CustomDescription.Builder.BatchUpdate(IValidator, BatchUpdates) Método

Definição

Atualiza o modelo de apresentação quando uma condição é atendida aplicando uma série de operações de exibição remota.

[Android.Runtime.Register("batchUpdate", "(Landroid/service/autofill/Validator;Landroid/service/autofill/BatchUpdates;)Landroid/service/autofill/CustomDescription$Builder;", "GetBatchUpdate_Landroid_service_autofill_Validator_Landroid_service_autofill_BatchUpdates_Handler", ApiSince=28)]
public virtual Android.Service.Autofill.CustomDescription.Builder BatchUpdate(Android.Service.Autofill.IValidator condition, Android.Service.Autofill.BatchUpdates updates);
[<Android.Runtime.Register("batchUpdate", "(Landroid/service/autofill/Validator;Landroid/service/autofill/BatchUpdates;)Landroid/service/autofill/CustomDescription$Builder;", "GetBatchUpdate_Landroid_service_autofill_Validator_Landroid_service_autofill_BatchUpdates_Handler", ApiSince=28)>]
abstract member BatchUpdate : Android.Service.Autofill.IValidator * Android.Service.Autofill.BatchUpdates -> Android.Service.Autofill.CustomDescription.Builder
override this.BatchUpdate : Android.Service.Autofill.IValidator * Android.Service.Autofill.BatchUpdates -> Android.Service.Autofill.CustomDescription.Builder

Parâmetros

condition
IValidator

condição usada para disparar as atualizações. Este valor não pode ser nulo.

updates
BatchUpdates

ações a serem aplicadas à apresentação do modelo quando a condição for atendida. Este valor não pode ser nulo.

Retornos

este construtor. Este valor não pode ser nulo.

Atributos

Comentários

Atualiza o modelo de apresentação quando uma condição é atendida aplicando uma série de operações de exibição remota. Isso permite a personalização dinâmica da parte da interface do usuário de salvamento controlada pelo serviço de preenchimento automático. Essa personalização dinâmica baseia-se no conteúdo dos modos de exibição de destino.

As atualizações são aplicadas na sequência em que são adicionadas, depois que as transformações são aplicadas aos modos de exibição filho.

RemoteViews template = new RemoteViews(pgkName, R.layout.my_full_template);

Pattern notEmptyPattern = Pattern.compile(".+");
Validator hasAddress = new RegexValidator(addressAutofillId, notEmptyPattern);
Validator hasCcNumber = new RegexValidator(ccNumberAutofillId, notEmptyPattern);

RemoteViews addressUpdates = new RemoteViews(pgkName, R.layout.my_full_template)
addressUpdates.setViewVisibility(R.id.address, View.VISIBLE);

// Make address visible
BatchUpdates addressBatchUpdates = new BatchUpdates.Builder()
    .updateTemplate(addressUpdates)
    .build();

RemoteViews ccUpdates = new RemoteViews(pgkName, R.layout.my_full_template)
ccUpdates.setViewVisibility(R.id.cc_number, View.VISIBLE);

// Mask credit card number (as .....LAST_4_DIGITS) and make it visible
BatchUpdates ccBatchUpdates = new BatchUpdates.Builder()
    .updateTemplate(ccUpdates)
    .transformChild(R.id.templateCcNumber, new CharSequenceTransformation
                    .Builder(ccNumberId, Pattern.compile("^.*(\\d\\d\\d\\d)$"), "...$1")
                    .build())
    .build();

CustomDescription customDescription = new CustomDescription.Builder(template)
    .batchUpdate(hasAddress, addressBatchUpdates)
    .batchUpdate(hasCcNumber, ccBatchUpdates)
    .build();

Outra abordagem é adicionar um filho primeiro e, em seguida, aplicar as transformações.

RemoteViews template = new RemoteViews(pgkName, R.layout.my_base_template);

RemoteViews addressPresentation = new RemoteViews(pgkName, R.layout.address)
RemoteViews addressUpdates = new RemoteViews(pgkName, R.layout.my_template)
addressUpdates.addView(R.id.parentId, addressPresentation);
BatchUpdates addressBatchUpdates = new BatchUpdates.Builder()
    .updateTemplate(addressUpdates)
    .build();

RemoteViews ccPresentation = new RemoteViews(pgkName, R.layout.cc)
RemoteViews ccUpdates = new RemoteViews(pgkName, R.layout.my_template)
ccUpdates.addView(R.id.parentId, ccPresentation);
BatchUpdates ccBatchUpdates = new BatchUpdates.Builder()
    .updateTemplate(ccUpdates)
    .transformChild(R.id.templateCcNumber, new CharSequenceTransformation
                    .Builder(ccNumberId, Pattern.compile("^.*(\\d\\d\\d\\d)$"), "...$1")
                    .build())
    .build();

CustomDescription customDescription = new CustomDescription.Builder(template)
    .batchUpdate(hasAddress, addressBatchUpdates)
    .batchUpdate(hasCcNumber, ccBatchUpdates)
    .build();

Referência do Android para android.service.autofill.CustomDescription.Builder.batchUpdate.

Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.

Aplica-se a