Boa noite,
Estou escrevendo um código para gerar um app que faz um sorteio entre cara e coroa.
Porém, toda vez que eu clico no botão jogar, para ele gerar um número aleatório e a partir disso exibir a imagem da cara ou coroa, o app quebra.
obs 1: não dá erro na compilação
obs 2: o erro é o seguinte:
E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.caraoucoroa, PID: 5306 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.caraoucoroa/com.example.caraoucoroa.MainActivity2}: java.lang.NullPointerException: Attempt to invoke virtual method 'int android.os.Bundle.getInt(java.lang.String)' on a null object reference
As minhas telas são:
package com.example.caraoucoroa;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import java.util.Random;
public class MainActivity extends AppCompatActivity {
private Button botaoJogar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
botaoJogar = findViewById(R.id.button);
botaoJogar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(getApplicationContext(), MainActivity2.class);
startActivity(intent); // faz com que o clique do botao leve para a MainActivity2
//passar dados para a próxima tela
int numero = new Random().nextInt(2); // cria numeros randomicos, no total de 2 (0 e 1) e atribui à variável numero
intent.putExtra("numero", numero);
}
});
}
}
package com.example.caraoucoroa;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.media.Image;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
public class MainActivity2 extends AppCompatActivity {
private ImageView imagemResultado;
private ImageView botaoVoltar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
imagemResultado = findViewById(R.id.imageViewResultado);
botaoVoltar = findViewById(R.id.imageViewVoltar);
//recuperar dados
Bundle dados = getIntent().getExtras();
int numero = dados.getInt("numero");
// exibe cara ou coroa de acordo com o resultado
if (numero == 0) {
imagemResultado.setImageResource(R.drawable.moeda_cara);
} else {
imagemResultado.setImageResource(R.drawable.moeda_coroa);
}
botaoVoltar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
finish();
}
});
}
}
Muito obrigada pela ajuda