java - Implementation function inside OnClickListener - Android -
i wanna call method "criarnotificacao" -> createnotification, inside function onclick, error can't implement it, friend tell me create anonymous class, don't understand "too much".. how can it? there simple method this?
package br.com.notification; import android.app.activity; import android.app.notification; import android.app.notificationmanager; import android.app.pendingintent; import android.content.context; import android.content.intent; import android.os.bundle; import android.view.view; import android.widget.button; import android.widget.textview; public class createnotificationactivity extends activity { button btnnotifica; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); textview text = new textview(this); text.settext("notificação disparada."); setcontentview(r.layout.main); // texto que aparecerá na barra de status (chamada para notificação) string tickertext = "você recebeu uma mensagem."; // detalhes da notificação charsequence titulo = "andré"; charsequence mensagem = "exemplo de notificação"; // exibe notificação //criarnotificacao(this, tickertext, titulo, mensagem, notificationreceiveractivity.class); //começar brincar aqui! btnnotifica = (button) findviewbyid(r.id.button1); btnnotifica.setonclicklistener(new button.onclicklistener() { public void onclick(view v) { //call notification here } }); } // exibe notificacao public void criarnotificacao(context context, charsequence mensagembarrastatus, charsequence titulo, charsequence mensagem, class activity) { // recupera o serviço notificationmanager notificationmanager nm = (notificationmanager) getsystemservice(notification_service); notification n = new notification(r.drawable.jo, mensagembarrastatus, system.currenttimemillis()); // pendingintent para executar activity se o usuário selecionar notificação pendingintent p = pendingintent.getactivity(this, 0, new intent(this, activity), 0); // flag utilizada para remover notificação da barra de status // quando o usuário clicar nela n.flags |= notification.flag_auto_cancel; // informações n.setlatesteventinfo(this, titulo, mensagem, p); // espera 100ms e vibra por 250ms, espera por mais 100ms e vibra por 500ms n.vibrate = new long[] { 100, 250, 100, 500 }; //id da notificacao nm.notify(r.string.app_name, n); } }
i imagine error you're getting because you're trying call this
within scope of onclick
, won't result in current context
.
what need instantiate final variable outside of click listener store current context.
also, other variables non-global, need instantiated final well; in order used within onclick handler.
// texto que aparecerá na barra de status (chamada para notificação) final string tickertext = "você recebeu uma mensagem."; // detalhes da notificação final charsequence titulo = "andré"; final charsequence mensagem = "exemplo de notificação"; // current context final context context = this; //começar brincar aqui! btnnotifica = (button) findviewbyid(r.id.button1); btnnotifica.setonclicklistener(new button.onclicklistener() { public void onclick(view v) { criarnotificacao(context, tickertext, titulo, mensagem, notificationreceiveractivity.class); } });
Comments
Post a Comment