Cícero Ednilson

Blog sobre Desenvolvimento de Softwares

Home » Criando uma aplicação em Android com Sqlite – Parte 6: Desenvolvendo tela para editar um registro.

Criando uma aplicação em Android com Sqlite – Parte 6: Desenvolvendo tela para editar um registro.

Nessa última parte do nosso tutorial vamos criar uma tela para editarmos um registro já cadastrado no nosso banco de dados.

Páginas do tutorial:

Criando tela de edição.

No nosso pacote ciceroednilson.com.br.apppessoa vamos clicar com o botão direito e vamos até New -> Activity -> Empty Activity como mostra a imagem abaixo.

70

Na tela que foi aberta vamos preencher os campos como mostra a imagem abaixo, depois basta clicar em Finish.

71

Agora vamos abrir o nosso arquivo de layout que está com o nome de activity_editar.xml e vamos adicionar o código abaixo para a criação dos componentes.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">
 
 
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:text="Código:"
        android:id="@+id/textViewCodigo" />
 
    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/editTextCodigo"
        android:editable="false"/>
 
 
 
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:text="Nome:"
        android:id="@+id/textViewNome" />
 
    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:singleLine="true"
        android:id="@+id/editTextNome" />
 
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:text="Endereço:"
        android:id="@+id/textViewEndereco" />
 
    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:singleLine="true"
        android:id="@+id/editTextEndereco" />
 
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:text="Sexo:"
        android:id="@+id/textViewSexo" />
 
    <RadioGroup
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:id="@+id/radioGroupSexo">
 
        <RadioButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Masculino"
            android:id="@+id/radioButtonMasculino"
            android:layout_gravity="center_horizontal"
            android:checked="false" />
 
        <RadioButton
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Feminino"
            android:id="@+id/radioButtonFeminino"
            android:checked="false" />
    </RadioGroup>
 
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:text="Data Nascimento:"
        android:id="@+id/textViewDataNascimento" />
 
    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/editTextDataNascimento"
        android:focusable="false"/>
 
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:text="Estado Civil"
        android:id="@+id/textViewEstadoCivil" />
 
    <Spinner
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/spinnerEstadoCivil" />
 
    <CheckBox
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Registro Ativo"
        android:id="@+id/checkBoxRegistroAtivo"
        android:checked="false" />
 
    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">
 
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/voltar"
            android:id="@+id/buttonVoltar"
            android:layout_alignTop="@+id/buttonAlterar"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true"
            android:layout_marginLeft="95dp"
            android:layout_marginStart="95dp" />
 
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Alterar"
            android:id="@+id/buttonAlterar"
            android:layout_centerVertical="true"
            android:layout_toRightOf="@+id/buttonVoltar"
            android:layout_toEndOf="@+id/buttonVoltar" />
 
    </RelativeLayout>
 
 
</LinearLayout>

Abaixo podemos ver como deve ficar nosso layout para a tela de edição.

Agora vamos abrir a nossa atividade EditarActivity e vamos adicionar o código abaixo.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
package ciceroednilson.com.br.apppessoa;
 
import android.app.AlertDialog;
import android.app.DatePickerDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.DatePicker;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Spinner;
 
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
 
import ciceroednilson.com.br.apppessoa.Uteis.Uteis;
import ciceroednilson.com.br.apppessoa.model.EstadoCivilModel;
import ciceroednilson.com.br.apppessoa.model.PessoaModel;
import ciceroednilson.com.br.apppessoa.repository.PessoaRepository;
 
public class EditarActivity extends AppCompatActivity {
 
    /*COMPONENTES DA TELA*/
    EditText         editTextCodigo;
    EditText         editTextNome;
    EditText         editTextEndereco;
    RadioButton      radioButtonMasculino;
    RadioButton      radioButtonFeminino;
    RadioGroup       radioGroupSexo;
    EditText         editTextDataNascimento;
    Spinner          spinnerEstadoCivil;
    CheckBox         checkBoxRegistroAtivo;
    Button           buttonAlterar;
    Button           buttonVoltar;
 
    //CRIA POPUP COM O CALENDÁRIO
    DatePickerDialog datePickerDialogDataNascimento;
 
    ArrayAdapter<EstadoCivilModel> arrayAdapterEstadosCivis;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_editar);
 
 
        //CHAMA O MÉTODO PARA CRIAR OS COMPONENTES DA TELA
        this.CriarComponentes();
 
        //CHAMA O MÉTODO QUE CRIA EVENTOS PARA OS COMPONENTES
        this.CriarEventos();
 
        //CARREGA AS OPÇÕES DE ESTADO CIVIL
        this.CarregaEstadosCivis();
 
        //CARREGA OS VALORES NOS CAMPOS DA TELA.
        this.CarregaValoresCampos();
    }
 
    //VINCULA OS COMPONENTES DA TELA(VIEW) AOS OBJETOS DECLARADOS.
    protected  void CriarComponentes(){
 
        editTextCodigo         = (EditText) this.findViewById(R.id.editTextCodigo);
 
        editTextNome           = (EditText) this.findViewById(R.id.editTextNome);
 
        editTextEndereco       = (EditText) this.findViewById(R.id.editTextEndereco);
 
        radioButtonMasculino   = (RadioButton) this.findViewById(R.id.radioButtonMasculino);
 
        radioButtonFeminino    = (RadioButton) this.findViewById(R.id.radioButtonFeminino);
 
        radioGroupSexo         = (RadioGroup) this.findViewById(R.id.radioGroupSexo);
 
        editTextDataNascimento = (EditText)this.findViewById(R.id.editTextDataNascimento);
 
        spinnerEstadoCivil     = (Spinner)this.findViewById(R.id.spinnerEstadoCivil);
 
        checkBoxRegistroAtivo  = (CheckBox)this.findViewById(R.id.checkBoxRegistroAtivo);
 
        buttonAlterar           = (Button) this.findViewById(R.id.buttonAlterar);
 
        buttonVoltar           = (Button) this.findViewById(R.id.buttonVoltar);
 
    }
 
    //MÉTODO CRIA OS EVENTOS PARA OS COMPONENTES
    protected  void CriarEventos(){
 
 
        final Calendar calendarDataAtual = Calendar.getInstance();
        int anoAtual   = calendarDataAtual.get(Calendar.YEAR);
        int mesAtual   = calendarDataAtual.get(Calendar.MONTH);
        int diaAtual   = calendarDataAtual.get(Calendar.DAY_OF_MONTH);
 
        //CRIANDO A POPUP COM O CALENDÁRIO
        datePickerDialogDataNascimento = new DatePickerDialog(this,new DatePickerDialog.OnDateSetListener() {
 
            @Override
            public void onDateSet(DatePicker view, int anoSelecionado, int mesSelecionado, int diaSelecionado) {
 
                //FORMATANDO O MÊS COM DOIS DÍGITOS
                String mes = (String.valueOf((mesSelecionado + 1)).length() == 1 ? "0" + (mesSelecionado + 1 ): String.valueOf(mesSelecionado));
 
                editTextDataNascimento.setText(diaSelecionado + "/" + mes + "/" + anoSelecionado);
 
            }
 
        }, anoAtual, mesAtual, diaAtual);
 
 
        //CRIANDO EVENTO CLICK PARA O CAMPO DATA DE NASCIMENTO MOSTRAR A POPUP
        editTextDataNascimento.setOnClickListener(new View.OnClickListener() {
 
            @Override
            public void onClick(View v) {
 
                datePickerDialogDataNascimento.show();
            }
        });
 
        //CRIANDO EVENTO FOCUS PARA O CAMPO DATA DE NASCIMENTO MOSTRAR A POPUP
        editTextDataNascimento.setOnFocusChangeListener(new View.OnFocusChangeListener() {
            @Override
            public void onFocusChange(View v, boolean hasFocus) {
 
                datePickerDialogDataNascimento.show();
 
            }
        });
 
        //CRIANDO EVENTO CLICK PARA O BOTÃO ALTERAR
        buttonAlterar.setOnClickListener(new View.OnClickListener(){
 
            @Override
            public void onClick(View v) {
 
                Alterar_onClick();
            }
        });
 
        //CRIANDO EVENTO CLICK PARA O BOTÃO VOLTAR
        buttonVoltar.setOnClickListener(new View.OnClickListener(){
 
            @Override
            public void onClick(View v) {
 
                Intent intentMainActivity = new Intent(getApplicationContext(), MainActivity.class);
                startActivity(intentMainActivity);
                finish();
            }
        });
    }
 
    //ALTERA UM REGISTRO
    protected  void Alterar_onClick(){
 
        //VALIDA SE OS CAMPOS ESTÃO VAZIOS ANTES DE ALTERAR O REGISTRO
        if(editTextNome.getText().toString().trim().equals("")){
 
            Uteis.Alert(this, this.getString(R.string.nome_obrigatorio));
 
            //FOCO NO CAMPO
            editTextNome.requestFocus();
        }
        else if(editTextEndereco.getText().toString().trim().equals("")){
 
            Uteis.Alert(this, this.getString(R.string.endereco_obrigatorio));
 
            editTextEndereco.requestFocus();
 
        }
        else if(!radioButtonMasculino.isChecked() && !radioButtonFeminino.isChecked()){
 
            Uteis.Alert(this, this.getString(R.string.sexo_obrigatorio));
        }
        else if(editTextDataNascimento.getText().toString().trim().equals("")){
 
            Uteis.Alert(this, this.getString(R.string.data_nascimento_obrigatorio));
 
            editTextDataNascimento.requestFocus();
 
        }
        else{
 
 
            /*CRIANDO UM OBJETO PESSOA*/
            PessoaModel pessoaModel = new PessoaModel();
 
            pessoaModel.setCodigo(Integer.parseInt(editTextCodigo.getText().toString()));
 
            /*SETANDO O VALOR DO CAMPO NOME*/
            pessoaModel.setNome(editTextNome.getText().toString().trim());
 
            /*SETANDO O ENDEREÇO*/
            pessoaModel.setEndereco(editTextEndereco.getText().toString().trim());
 
            /*SETANDO O SEXO*/
            if(radioButtonMasculino.isChecked())
                pessoaModel.setSexo("M");
            else
                pessoaModel.setSexo("F");
 
            /*SETANDO A DATA DE NASCIMENTO*/
            pessoaModel.setDataNascimento(editTextDataNascimento.getText().toString().trim());
 
            /*REALIZANDO UM CAST PARA PEGAR O OBJETO DO ESTADO CIVIL SELECIONADO*/
            EstadoCivilModel estadoCivilModel = (EstadoCivilModel)spinnerEstadoCivil.getSelectedItem();
 
            /*SETANDO ESTO CIVIL*/
            pessoaModel.setEstadoCivil(estadoCivilModel.getCodigo());
 
            /*SETA O REGISTRO COMO INATIVO*/
            pessoaModel.setRegistroAtivo((byte)0);
 
            /*SE TIVER SELECIONADO SETA COMO ATIVO*/
            if(checkBoxRegistroAtivo.isChecked())
                pessoaModel.setRegistroAtivo((byte)1);
 
            /*ALTERANDO O REGISTRO*/
            new PessoaRepository(this).Atualizar(pessoaModel);
 
            /*MENSAGEM DE SUCESSO!*/
 
            AlertDialog.Builder alertDialog = new AlertDialog.Builder(this);
 
            //ADICIONANDO UM TITULO A NOSSA MENSAGEM DE ALERTA
            alertDialog.setTitle(R.string.app_name);
 
            //MENSAGEM A SER EXIBIDA
            alertDialog.setMessage("Registro alterado com sucesso! ");
 
            //CRIA UM BOTÃO COM O TEXTO OK SEM AÇÃO
            alertDialog.setPositiveButton("OK", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int id) {
 
                    //RETORNA PARA A TELA DE CONSULTA
                    Intent intentRedirecionar = new Intent(getApplicationContext(), ConsultarActivity.class);
 
                    startActivity(intentRedirecionar);
 
                    finish();
                }
            });
 
            //MOSTRA A MENSAGEM NA TELA
            alertDialog.show();
 
 
        }
 
 
    }
 
    //CARREGA OS ESTADOS CIVIS DO CAMPO spinnerEstadoCivil
    protected  void CarregaEstadosCivis(){
 
        List<EstadoCivilModel> itens =  new ArrayList<EstadoCivilModel>();
 
        itens.add(new EstadoCivilModel("S", "Solteiro(a)"));
        itens.add(new EstadoCivilModel("C", "Casado(a)"));
        itens.add(new EstadoCivilModel("V", "Viuvo(a)"));
        itens.add(new EstadoCivilModel("D", "Divorciado(a)"));
 
 
        arrayAdapterEstadosCivis = new ArrayAdapter<EstadoCivilModel>(this, android.R.layout.simple_spinner_item,itens);
        arrayAdapterEstadosCivis.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
 
 
        spinnerEstadoCivil.setAdapter(arrayAdapterEstadosCivis);
 
    }
    //POSICIONA O ESTADO CIVIL PARA EDIÇÃO
    protected void PosicionaEstadoCivil(String chaveEstadoCivil){
 
        for(int index = 0; index < arrayAdapterEstadosCivis.getCount();index++){
 
            if(((EstadoCivilModel)arrayAdapterEstadosCivis.getItem(index)).getCodigo().equals(chaveEstadoCivil)){
 
                spinnerEstadoCivil.setSelection(index);
                break;
            }
 
        }
 
 
    }
 
    //CARREGA OS VALORES NOS CAMPOS APÓS RETORNAR DO SQLITE
    protected  void CarregaValoresCampos(){
 
        PessoaRepository pessoaRepository = new PessoaRepository(this);
 
 
        //PEGA O ID PESSOA QUE FOI PASSADO COMO PARAMETRO ENTRE AS TELAS
        Bundle extra =  this.getIntent().getExtras();
        int id_pessoa = extra.getInt("id_pessoa");
 
        //CONSULTA UMA PESSOA POR ID
        PessoaModel pessoaModel = pessoaRepository.GetPessoa(id_pessoa);
 
        //SETA O CÓDIGO NA VIEW
        editTextCodigo.setText(String.valueOf(pessoaModel.getCodigo()));
 
        //SETA O NOME NA VIEW
        editTextNome.setText(pessoaModel.getNome());
 
        //SETA O ENDEREÇO NA VIEW
        editTextEndereco.setText(pessoaModel.getEndereco());
 
        //SETA O SEXO NA VIEW
        if(pessoaModel.getSexo().equals("M"))
            radioButtonMasculino.setChecked(true);
        else
            radioButtonFeminino.setChecked(true);
 
        //SETA A DATA DE NASCIMENTO
        editTextDataNascimento.setText(pessoaModel.getDataNascimento());
 
        //POSICIONA O ESTADO CIVIL
        this.PosicionaEstadoCivil(pessoaModel.getEstadoCivil());
 
        //SETA SE O  REGISTRO ESTÁ ATIVO
        if(pessoaModel.getRegistroAtivo() == 1)
            checkBoxRegistroAtivo.setChecked(true);
    }
}

Agora vamos abrir o nosso arquivo LinhaConsultarAdapter que fica no pacote Uteis, depois vamos localizar o evento click do botão Editar e vamos deixar o evento com o código abaixo, nessa parte do código vamos passar o id selecionado como parâmetro para a tela de edição consultar as outras informações da pessoa.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
        buttonEditar.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
 
 
                Intent intentRedirecionar = new Intent(consultarActivity, EditarActivity.class);
 
                intentRedirecionar.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
 
                intentRedirecionar.putExtra("id_pessoa",pessoaModels.get(position).getCodigo());
 
                consultarActivity.startActivity(intentRedirecionar);
 
                consultarActivity.finish();
 
 
            }
        });

Veja abaixo o arquivo alterado.

Agora vamos clicar no menu Build -> Make Project para compilarmos o nosso projeto.

Agora vamos clicar no botão Run para executarmos a nossa aplicação.

75

Na tela que foi aberta vamos apenas clicar em OK.

76

Com a nossa aplicação em execução vamos clicar no menu Consultar.

Agora na tela de consulta vamos clicar no link Editar.

78

Agora vamos alterar algumas informações e clicar em Alterar.

Depois de alterarmos algumas informações devemos receber a mensagem abaixo.

E então o sistema retorna para a tela de consulta.

Bom é isso ai amigos, ficamos por aqui com esse tutorial de Android com Sqlite, espero que tenham gostado, até a próxima.

Você pode pegar o código fonte desse tutorial aqui.

Comentários

Name of author

Name: ciceroednilson@gmail.com

16 thoughts on “Criando uma aplicação em Android com Sqlite – Parte 6: Desenvolvendo tela para editar um registro.

  • Luiz Felipe D Silva

    Olá, fiz todo o procedimento, mas nenhum botão da tela principal, quer funcionar, já revi todo o código, mas não adiantou… Sabe me dizer qual pode ser uma das causas para estar acontecendo isso?

    Reply
    • ciceroednilson@gmail.com Post author

      Luiz,

      Respondi seu email, conseguiu resolver? Se conseguiu posta o que era para ajudar outros amigos.

      Abraços

      Reply
  • Meus parabéns! Busquei muito sobre como incorporar um BD pra salvar no dispositivo e achei esse CRUD S-E-N-S-A-C-I-O-N-A-L! Parabéns mesmo.

    Você sabe se essa lógica de armazenamento pode ser usada para exibir algum texto já salvo?
    Ex.: quero criar uma tela com uma lista de dicas, e ao clicar nela, vai abrir uma caixa de diálogo ou uma activity padrão e mostrar apenas o texto relacionado àquele item selecionado.

    Pode me mandar um e-mail com a resposta, positiva ou não. Agradeço demais!

    kercyleite94@gmail.com

    Reply
    • ciceroednilson@gmail.com Post author

      Desculpa a demorar em responder Kercy, pois estava de férias, mas o que você quer fazer é possível sim, basta você criar uma lista como no exemplo e colocar um campo escondido com o id da do registro, e quando o usuário clicar você faz uma consulta com as informações que você deseja mostrar, fica parecido com a tela de edição de registros.

      Abraços,
      Cícero Ednilson.

      Reply
  • Parabéns foi o melhor tutorial around world, estava me batendo em algumas coisas e dessa forma que foi passado aqui consegui entender.

    Reply
    • ciceroednilson@gmail.com Post author

      Muito obrigado por visitar o blog,

      Não deixe de acompanhar, sempre que posso estou postando novos tutoriais.

      Abraços,
      Cícero Ednilson.

      Reply
  • Parabéns Cícero, muito bom seu tutorial. Estou precisando da sua ajuda se for possível.
    Incorporei um ActionBar com um SearshView na tela de consulta mas estou tendo dificuldade para adaptar o código para a pesquisa. Já pesquisei e testei vários códigos que consegui na internet mas não tive êxito. Você pode me ajudar?

    Reply
    • ciceroednilson@gmail.com Post author

      Muito obrigado por visitar o blog Elias,

      Qual o problema que está ocorrendo quando você tenta realizar a consulta? Em qual parte você está tendo problema ?

      Reply
  • Cícero,
    Na verdade não estou conseguindo adaptar o código. Não da erro mas não retorna nada.

    TELACONSULTA

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.menu_main, menu);
    SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
    MenuItem searchItem = menu.findItem(R.id.search);
    SearchView searchView = (SearchView) MenuItemCompat
    .getActionView(searchItem);
    searchView.setSearchableInfo(searchManager
    .getSearchableInfo(new ComponentName(
    getApplicationContext(), TelaConsulta.class)));
    searchView.setIconifiedByDefault(false);

    return super.onCreateOptionsMenu(menu);
    }

    @Override
    public boolean onQueryTextSubmit(String query) {
    return false;
    }

    @Override
    public boolean onQueryTextChange(String newText) {
    newText = newText.toLowerCase();
    ArrayList newList = new ArrayList();
    for (MdCamposFilme Titulo : listBeneficiary)
    {
    String titulo = Titulo.getTitulo().toLowerCase();
    if (titulo.contains(newText)){
    newList.add(Titulo);
    }
    }
    beneficiaryRecyclerAdapter.setFilter(newList);
    return true;
    }

    LINHACONSULTAADAPTER

    public void setFilter(ArrayList newList) {
    listBeneficiary = new ArrayList();
    listBeneficiary.addAll(newList);
    notifyDataSetChanged();
    }

    Retirado da internet.

    Reply
    • ciceroednilson@gmail.com Post author

      Teria que ver o projeto como um todo, assim não fica muito claro o que o código está fazendo.

      Reply
  • Cícero,
    O projeto é o do seu tutorial. Só preciso colocar uma pesquisa para a LisView na Activity TELACONSULTA.

    Reply
    • ciceroednilson@gmail.com Post author

      Se eu entendi você deve adicionar um EditText acima do ListView e na Activity pegar o valor desse campo e usar no filtro da sua consulta, depois para atualizar a lista você pode ver como é feita a rotina de delete que após de deletar atualiza a lista.

      Reply
  • A pesquisa seria feita numa ActionBar com um SearshView, mas se você poder me ajudar com a SearshView ou EditText, fico agradecido. Já estou a uns dois meses tentando implementar a pesquisa sem sucesso.

    Reply
    • ciceroednilson@gmail.com Post author

      No momento estou sem tempo para criar esse exemplo para você, peço desculpas por não poder ajudar.

      Reply
  • Valeu. Obrigado pela paciência.

    Reply
  • Vou pesquisar e tentar novamente.

    Reply

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *