1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Como atualizar TextViews ?

Estou utilizando esses métodos em uma tela de adicionar itens. Quando clico no botão para abrir o calendário, o método é chamado, dessa forma escolho a data de vencimento do item(despesa). No método criei condições de acordo com a data atual e de vencimento. Se for dia do pagamento, vai ter uma mensagem: "Dia do Pagamento" e o mesmo para atrasado no item(despesa). O problema é que esse texto só atualiza quando coloco no botão para abrir o calendário. Não atualiza quando a data muda, continua o mesmo texo.Código abaixo:

Button btData = (Button)findViewById(R.id.btData);
    Calendar c = Calendar.getInstance();
    int dia = c.get(Calendar.DAY_OF_MONTH);
    int mes = c.get(Calendar.MONTH);
    int ano = c.get(Calendar.YEAR);

    DatePickerDialog datePickerDialog = new DatePickerDialog(AddItemActivity.this,
            new DatePickerDialog.OnDateSetListener() {
                @Override
                public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
                    String data = dayOfMonth+"/"+"0"+(month+1)+"/"+year;
                    btData.setText(data);
                    calcDD(dayOfMonth,month,year);
                }
            },ano,mes,dia);
    datePickerDialog.show();
}

private void calcDD(int diaE, int mesE, int anoE) {
    Calendar c = Calendar.getInstance();
    int diaA = c.get(Calendar.DAY_OF_MONTH);
    int mesA = c.get(Calendar.MONTH);
    int anoA = c.get(Calendar.YEAR);

    String dataS = diaE+"/"+"0"+(mesE+1)+"/"+anoE;


    item.setDataselecionada(dataS);


    if( diaA == diaE & mesA == mesE & anoA == anoE){
        item.setNotificacao("Dia do pagamento!");
    }else if (mesA > mesE){
        item.setNotificacao("Atrasado!");
    }else if(mesA == mesE){
        if (diaA > diaE){
            item.setNotificacao("Atrasado!");
        }
    }
}

Chamando o método

btData.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            pegarData();
        }
    });

ItemAdapter

public ItemAdapter(Context context, List<Item> elementos){
    super(context, R.layout.item, elementos);
    this.context = context;
    this.elementos = elementos;
}
@Override
public View getView(int position,  View convertView,ViewGroup parent) {

    LayoutInflater inflater = (LayoutInflater) context
            .getSystemService(Context.LAYOUT_INFLATER_SERVICE);

    View rowView = inflater.inflate(R.layout.item, parent,false);

    TextView item = (TextView)rowView.findViewById(R.id.txtItem);
    TextView preco = (TextView)rowView.findViewById(R.id.txtPreco);
    TextView categoria = (TextView)rowView.findViewById(R.id.txtCategoria);
    TextView dataselecionada = (TextView)rowView.findViewById(R.id.txtDataSelecionada);
    //TextView txtParcelas = (TextView)rowView.findViewById(R.id.txtParcelas);
    TextView notificacao = (TextView)rowView.findViewById(R.id.txtNotificacao);


    item.setText(elementos.get(position).getItem());
    preco.setText(Float.toString(elementos.get(position).getPreco()));
    categoria.setText(elementos.get(position).getCategoria());
    dataselecionada.setText(elementos.get(position).getDataselecionada());
    //txtParcelas.setText(Integer.toString(elementos.get(position).getParcelas()));
    notificacao.setText(elementos.get(position).getNotificacao());


    return rowView;
}
}
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

0 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags android ou faça a sua própria pergunta.