1
I’m making a screen "Notification" in the application android, but will only show the database information without notifying user. However the information is not showing on the screen, is giving that the application stopped.
Class:
import static com.example.tcc.tcc.ResultadoONGActivity.lerListViewId;
public class Notificacao extends AppCompatActivity {
public static NotificacoesEncontradas notificacaoStatica;
TextView NotONG;
private ListView listView;
notificacoesEncontradasAdapter notificacoesEncontradasAdapter;
ArrayList id_user = new ArrayList();
public static String lerListViewIdUser;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_notificacao);
NotONG = (TextView) findViewById(R.id.NotNaoEncontradas);
NotONG.setVisibility(View.INVISIBLE);
Boolean TemDado = BuscarContas();
if (TemDado == false) {
NotONG.setVisibility(View.VISIBLE);
//Toast.makeText(this, "Nenhuma Conta Encontrada", Toast.LENGTH_SHORT).show();
}
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
///de acordo com o "position" irá ler as variaveis atuais abaixo: ///
lerListViewIdUser = id_user.get(position).toString();
}
});
/*
Boolean TemDado = VisualizarNotificacoes();
if (TemDado == false) {
NotONG.setVisibility(View.VISIBLE);
//Toast.makeText(this, "Nenhuma Conta Encontrada", Toast.LENGTH_SHORT).show();
}*/
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {// esse metodo que manda na action bar
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu_tela_inicial, menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_close) {
//ao clicar em sair irá sair do aplicativo, apenas o finish irá sair apenas da tela atual e não do aplicativo.
startActivity(new Intent(this,MainActivity.class));
finish();
return true;
}if (id ==R.id.action_perfil){
startActivity(new Intent(Notificacao.this,EditarPerfilActivity.class));
}if (id==R.id.action_alterar_senha){
startActivity(new Intent(Notificacao.this,AlterarSenhaActivity.class));
}if(id==R.id.action_notificacoes){
startActivity(new Intent(Notificacao.this,Notificacao.class));
}if(id==R.id.logo_maos){
startActivity(new Intent(this, TelaInicialActivity.class));
}
return super.onOptionsItemSelected(item);
}
public Boolean BuscarContas() {
ArrayList<NotificacoesEncontradas> fim = new ArrayList<NotificacoesEncontradas>();
Boolean TemDado = false;
try {
String retorno = new HTTPService("notificacoes", "telefone=" + lerListViewIdUser).execute().get();
JSONArray json = new JSONArray(retorno);
for(int i = 0; i< json.length();i++){
NotificacoesEncontradas NotificacoesEncontradas = new NotificacoesEncontradas();
//atividadesEncontradas.setId_user(json.getJSONObject(i).getString("razao_social"));
NotificacoesEncontradas.setTelefone(json.getJSONObject(i).getString("telefone"));
NotificacoesEncontradas.setTipo(json.getJSONObject(i).getString("tipo"));
// NotificacoesEncontradas.setArea_interesse(json.getJSONObject(i).getString("conta"));
TemDado = true;
fim.add(NotificacoesEncontradas);
}
carregaResultadoLista(fim);
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
} catch (JSONException e) {
e.printStackTrace();
}
return TemDado;
}
public void carregaResultadoLista(ArrayList<NotificacoesEncontradas> lista){
notificacoesEncontradasAdapter = new notificacoesEncontradasAdapter(Notificacao.this, lista);
listView.setAdapter(notificacoesEncontradasAdapter);//preenchido dinamicamente
}
}
Php:
<?php
include_once 'includes/conexao.php';
/* check connection */
if(mysqli_connect_errno()){
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
$user_id = $_GET["user_id"];
if($user_id != ""){
// $dbcon->query("SET NAMES 'utf8'");
$sql = "SELECT id,
user_id,
ong_id,
tipo_id,
tipo,
descricao,
telefone,
visualizada,
data_criacao
FROM app.notificacao
WHERE user_id = '$user_id'
AND tipo = 'InteresseObjeto'
ORDER BY data_criacao DESC";
$result = $dbcon->query($sql);
while($e = mysqli_fetch_assoc($result)){
$output[] = $e;
}
print(json_encode($output));
$dbcon->close();
}
?>
logcat:
E/Androidruntime: FATAL EXCEPTION: main Process: com.example.tcc.tcc, PID: 32315 java.lang.Runtimeexception: Unable to start Activity Componentinfo{com.example.tcc.tcc/com.example.tcc.tcc.Notification}: java.lang.Nullpointerexception: Attempt to invoke virtual method 'void android.view.View.setVisibility(int)' on a null Object Reference at android.app.Activitythread.performLaunchActivity(Activitythread.java:2984) at android.app.Activitythread.handleLaunchActivity(Activitythread.java:3045) at android.app.Activitythread. -wrap14(Activitythread.java) at android.app.Activitythread$H.handleMessage(Activitythread.java:1642) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:154) at android.app.Activitythread.main(Activitythread.java:6776) at java.lang.reflect.Method.invoke(Native Method) at com.android.Internal.os.Zygoteinit$Methodandargscaller.run(Zygoteinit.java:1496) at com.android.Internal.os.Zygoteinit.main(Zygoteinit.java:1386) Caused by: java.lang.Nullpointerexception: Attempt to invoke virtual method 'void android.view.View.setVisibility(int)' on a null Object Reference at com.example.tcc.tcc.Notification.onCreate(Notification.java:35) at android.app.Activity.performCreate(Activity.java:6955) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1126) at android.app.Activitythread.performLaunchActivity(Activitythread.java:2927) at android.app.Activitythread.handleLaunchActivity(Activitythread.java:3045) at android.app.Activitythread. -wrap14(Activitythread.java) at android.app.Activitythread$H.handleMessage(Activitythread.java:1642) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:154) at android.app.Activitythread.main(Activitythread.java:6776) at java.lang.reflect.Method.invoke(Native Method) at com.android.Internal.os.Zygoteinit$Methodandargscaller.run(Zygoteinit.java:1496) at com.android.Internal.os.Zygoteinit.main(Zygoteinit.java:1386)