Pesquisa cada caracter digitado
22/02/2018
0
Estou tentando fazer um TextView como pesquisa de uma lista (RecyclerView). Assim que a pessoa digita, ele verifica na lista aonde tem os caracteres digitado.
Poderia me ajudar por favor?
________________________________XML___________________________________________
<br.gov.caixa.internetbankingmobile.ui.custom.EditTextValidation_
android:id="@+id/et_pesquisa_bancos"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginRight="@dimen/margin_big"
android:layout_marginLeft="@dimen/margin_big"
style="@style/MyTextInputLayoutThemeBlue"
android:textColorHint="@color/cinza_texto"
/>
_____________________________JAVA_______________________________
@EActivity(R.layout.activity_transferencia_lista_bancos)
public class TransferenciaListaBancosActivity extends BaseFontActivity {
@Bean
TransferenciaBO transferenciaBO;
@ViewById
RecyclerView recyclerView;
@ViewById
EditTextValidation et_pesquisa_bancos;
@AfterViews
public void init() {
obterListaBancos();
setEditTexts();
}
private RecyclerView.Adapter mAdapter;
private RecyclerView.LayoutManager mLayoutManager;
String[] listaBancos = {};
TextWatcher textWatcher = new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
EditTextValidation tempEditTextValidation;
if (et_pesquisa_bancos.textInputEditText.getEditableText() == s) {
tempEditTextValidation = et_pesquisa_bancos;
if (tempEditTextValidation != null) {
tempEditTextValidation.setValidado();
}
}
}
};
void setEditTexts() {
et_pesquisa_bancos.textInputEditText.addTextChangedListener(textWatcher);
}
public TransferenciaListaBancosActivity() {
}
public void pesquisaBanco() {
String etPesquisaBancos = et_pesquisa_bancos;
String listaBancos;???
etPesquisaBancos.contains(listaBancos);
}
private void obterListaBancos() {
ViewUtils.loading(this);
transferenciaBO.getListaBancos(// criar lista
new TransferenciaBO.ApiCallBack<TransferenciaListaBancos>() {
@Override
public void onSuccess(TransferenciaListaBancos response) {
callbackObterListaBancos(true, "", response);
}
@Override
public void onError(String error) {
callbackObterListaBancos(false, error, null);
}
}
);
}
void configureRecyclerView() {
// use this setting to improve performance if you know that changes
// in content do not change the layout size of the RecyclerView
recyclerView.setHasFixedSize(true);
mLayoutManager = new LinearLayoutManager(this);
recyclerView.setLayoutManager(mLayoutManager);
mAdapter = new BancoRecyclerAdapter(listaBancos, this);
recyclerView.setAdapter(mAdapter);
}
@UiThread
public void callbackObterListaBancos(boolean sucesso, String msgErro, TransferenciaListaBancos transferenciaListaBancos) {
ViewUtils.dismissLoading();
if (sucesso == false) {
ViewUtils.alert(this, msgErro);
} else {
if (transferenciaListaBancos != null && transferenciaListaBancos.listaBancos != null && transferenciaListaBancos.listaBancos.size() > 0) {
listaBancos = new String[transferenciaListaBancos.listaBancos.size()];
int i = 0;
for (TransferenciaBanco transferenciaBanco : transferenciaListaBancos.listaBancos) {
listaBancos[i] = transferenciaBanco.getCodBanco();
i++;
}
configureRecyclerView();
}
}
}
}
Poderia me ajudar por favor?
________________________________XML___________________________________________
<br.gov.caixa.internetbankingmobile.ui.custom.EditTextValidation_
android:id="@+id/et_pesquisa_bancos"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginRight="@dimen/margin_big"
android:layout_marginLeft="@dimen/margin_big"
style="@style/MyTextInputLayoutThemeBlue"
android:textColorHint="@color/cinza_texto"
/>
_____________________________JAVA_______________________________
@EActivity(R.layout.activity_transferencia_lista_bancos)
public class TransferenciaListaBancosActivity extends BaseFontActivity {
@Bean
TransferenciaBO transferenciaBO;
@ViewById
RecyclerView recyclerView;
@ViewById
EditTextValidation et_pesquisa_bancos;
@AfterViews
public void init() {
obterListaBancos();
setEditTexts();
}
private RecyclerView.Adapter mAdapter;
private RecyclerView.LayoutManager mLayoutManager;
String[] listaBancos = {};
TextWatcher textWatcher = new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
EditTextValidation tempEditTextValidation;
if (et_pesquisa_bancos.textInputEditText.getEditableText() == s) {
tempEditTextValidation = et_pesquisa_bancos;
if (tempEditTextValidation != null) {
tempEditTextValidation.setValidado();
}
}
}
};
void setEditTexts() {
et_pesquisa_bancos.textInputEditText.addTextChangedListener(textWatcher);
}
public TransferenciaListaBancosActivity() {
}
public void pesquisaBanco() {
String etPesquisaBancos = et_pesquisa_bancos;
String listaBancos;???
etPesquisaBancos.contains(listaBancos);
}
private void obterListaBancos() {
ViewUtils.loading(this);
transferenciaBO.getListaBancos(// criar lista
new TransferenciaBO.ApiCallBack<TransferenciaListaBancos>() {
@Override
public void onSuccess(TransferenciaListaBancos response) {
callbackObterListaBancos(true, "", response);
}
@Override
public void onError(String error) {
callbackObterListaBancos(false, error, null);
}
}
);
}
void configureRecyclerView() {
// use this setting to improve performance if you know that changes
// in content do not change the layout size of the RecyclerView
recyclerView.setHasFixedSize(true);
mLayoutManager = new LinearLayoutManager(this);
recyclerView.setLayoutManager(mLayoutManager);
mAdapter = new BancoRecyclerAdapter(listaBancos, this);
recyclerView.setAdapter(mAdapter);
}
@UiThread
public void callbackObterListaBancos(boolean sucesso, String msgErro, TransferenciaListaBancos transferenciaListaBancos) {
ViewUtils.dismissLoading();
if (sucesso == false) {
ViewUtils.alert(this, msgErro);
} else {
if (transferenciaListaBancos != null && transferenciaListaBancos.listaBancos != null && transferenciaListaBancos.listaBancos.size() > 0) {
listaBancos = new String[transferenciaListaBancos.listaBancos.size()];
int i = 0;
for (TransferenciaBanco transferenciaBanco : transferenciaListaBancos.listaBancos) {
listaBancos[i] = transferenciaBanco.getCodBanco();
i++;
}
configureRecyclerView();
}
}
}
}
Cristiano Pinheiro
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)