-1

Error:

java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.vinicius.chatandroid/com.example.vinicius.chatandroid.Janela}: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String android.content.Intent.getStringExtra(java.lang.String)' on a null object reference;

code:

public void sendMessage(View view) {
    EditText ip = (EditText) findViewById(R.id.txtIp);
    EditText porta = (EditText) findViewById(R.id.txtPorta);
    String txtIp = ip.getText().toString();
    String pota = porta.getText().toString();
    int txtPorta = Integer.parseInt(pota);
    Intent intent = new Intent(this, Janela.class);
    intent.putExtra("ip", txtIp);
    intent.putExtra("porta", txtPorta);
    startActivity(intent);
}

new activity

public Janela() {
    Intent intent = getIntent();
    String ip = intent.getStringExtra("ip");
    int porta = intent.getIntExtra("porta",0);
    this.conexao = new Conexao(ip, porta);
    conexao.addObserver(this);
    escreve("Chat iniciado com " + conexao.getIp() + ":" + conexao.getPorta());
}
Allan Pereira
  • 2,572
  • 4
  • 21
  • 28
  • 1
    java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String , it seems you are calling getString... on null reference. – kosa Jun 13 '16 at 15:20

2 Answers2

2

getIntent() would return null before onCreate() is called, so intent is becoming null in your code (Called in constructor) which is causing NPE.

Using constructor in activity is not a good idea, it has its own life cycle and you should follow that.

Solution:

Change method public Janela() { to something like public void MyJanela() { and call it inside onCreate().

Rohit5k2
  • 17,948
  • 8
  • 45
  • 57
1

Never do anything in the constructor of an activity or Fragment, try the following code :

 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Intent intent = getIntent();
        String ip = intent.getStringExtra("ip");
        int porta = intent.getIntExtra("porta",0);
        this.conexao = new Conexao(ip, porta);
        conexao.addObserver(this);
        escreve("Chat iniciado com " + conexao.getIp() + ":" + conexao.getPorta());
       }
Neo
  • 3,546
  • 1
  • 24
  • 31