-2

I want to move all data 5 (EditText) from activity 1 to 2

public class MainActivity extends Activity

 private EditText fName_ET;
    private EditText lName_ET;
    private EditText phoneNum_ET;
    private EditText eMail_ET;
    private EditText deviceModel_ET;
    private EditText nameDevice_ET;
    private Button nextPage;



    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.activity_main);

       fName_ET = (EditText)findViewById(R.id.fName_ET);
       lName_ET = (EditText)findViewById(R.id.lName_ET);
       phoneNum_ET = (EditText)findViewById(R.id.phone_ET);
       eMail_ET = (EditText)findViewById(R.id.mail_ET);
       nameDevice_ET = (EditText)findViewById(R.id.name_device);
       deviceModel_ET = (EditText)findViewById(R.id.model_device);
       nextPage = (Button)findViewById(R.id.next_btn);

        nextPage.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent = new Intent(MainActivity.this, Main2Activity.class);
                String fName =  fName_ET.getText().toString().trim();
                String lName =  lName_ET.getText().toString().trim();
                String email = eMail_ET.getText().toString().trim();
                String phone = phoneNum_ET.getText().toString().trim();
                String nameDevice = nameDevice_ET.getText().toString().trim();
                String modelDevice =deviceModel_ET.getText().toString().trim();
                intent.putExtra("modelDevice",modelDevice);
                intent.putExtra("fName", fName);
                intent.putExtra("lName", lName);
                intent.putExtra("phone", phone);
                intent.putExtra("email", email);
                intent.putExtra("nameDevice", nameDevice);
                startActivity(intent);
            }
        });

public class Main2Activity extends Activity

{

 package com.example.eranp.cp;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.view.Window;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;

import java.sql.Date;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;

public class Main2Activity extends Activity {


    private EditText pro_device_det;
    private Button saveDataBase;
    private DatabaseReference databaseCustomer, databaseDevice, databaseProblem;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.activity_main3);

        databaseCustomer = FirebaseDatabase.getInstance().getReference("customers");
        databaseDevice = FirebaseDatabase.getInstance().getReference("device");
        databaseProblem = FirebaseDatabase.getInstance().getReference("problem");
        saveDataBase = (Button) findViewById(R.id.save_btn);


        pro_device_det = (EditText) findViewById(R.id.pro_device_det);
        Intent intent = getIntent();
        final String fName = intent.getStringExtra("fName");
        final String lName = intent.getStringExtra("lName");
        final String phone = intent.getStringExtra("phone");
        final String email = intent.getStringExtra("email");
        final String modelDevice = intent.getStringExtra("modelDevice");
        final String nameDevice = intent.getStringExtra("nameDevice");

        saveDataBase.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                String proDeviceDet = pro_device_det.getText().toString().trim();
                String shortProDeviceDet = string3Words(proDeviceDet);
                DateFormat df = new SimpleDateFormat("d MMM yyyy, HH:mm");
                String date = df.format(Calendar.getInstance().getTime());
                if (!TextUtils.isEmpty(proDeviceDet)) {
                    String id = databaseCustomer.push().getKey();
                    Customer customer = new Customer(id, fName, lName, email, phone);
                    databaseCustomer.child(id).setValue(customer);
                    Device device = new Device(id, nameDevice, modelDevice);
                    databaseDevice.child(id).setValue(device);
                    Problem problem = new Problem(id, date, proDeviceDet, 0, shortProDeviceDet);

                    //  Toast.makeText(this , "Customer added", Toast.LENGTH_LONG).show();
                } else {
                    //  Toast.makeText(this, "Please write on an empty cell", Toast.LENGTH_LONG).show();
                }

            }
        });


    }

    private String string3Words(String s) {
        String[] splitted = s.split("\\s+");
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < splitted.length; i++) {
            sb.append(splitted[i]);
            if (i == 3) {
                break;
            }
        }
        String newS = sb.toString();
        return newS;
    }
}

log when I press:

down VM 03-09 14:47:16.903 3476-3476/com.example.eranp.clientpage E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.eranp.clientpage, PID: 3476 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.eranp.clientpage/com.example.eranp.clientpage.Main2Activity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Button.setOnClickListener(android.view.View$OnClickListener)' on a null object reference at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2924) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2985) at android.app.ActivityThread.-wrap14(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1635) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6692) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1468) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1358) Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Button.setOnClickListener(android.view.View$OnClickListener)' on a null object reference at com.example.eranp.clientpage.Main2Activity.onCreate(Main2Activity.java:50) at android.app.Activity.performCreate(Activity.java:6912) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1126) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2877) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2985)  at android.app.ActivityThread.-wrap14(ActivityThread.java)  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1635)  at android.os.Handler.dispatchMessage(Handler.java:102)  at android.os.Looper.loop(Looper.java:154)  at android.app.ActivityThread.main(ActivityThread.java:6692)  at java.lang.reflect.Method.invoke(Native Method)  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1468)  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1358)

Why when I press the next button the app crashing? Thank you for helping!

Eran Peer
  • 73
  • 1
  • 9

2 Answers2

1

You are trying to set a click listener on a button in Main2Activity. Most likely the button can't be inflated from the second activity's layout because it doesn't exist.

android.widget.Button.setOnClickListener(android.view.View$OnClickListener)' on a null object reference at com.example.eranp.clientpage.Main2Activity.onCreate(Main2Activity.java:50) at

Alex
  • 3,382
  • 2
  • 32
  • 41
  • But I cannot move to next page so how can I press the button on Main2Activity? – Eran Peer Mar 09 '18 at 12:57
  • It doesn't matter, you are trying to set a click listener on that button, not clicking on it – Alex Mar 09 '18 at 12:58
  • This is your issue. saveDataBase = (Button) findViewById(R.id.save_btn) returns null for some reason. Do you have a save_btn in activity_main3? – Alex Mar 09 '18 at 12:58
0

As per your error log you are getting error because of this

Attempt to invoke virtual method 'void android.widget.Button.setOnClickListener(android.view.View$OnClickListener)' on a null object reference at com.example.eranp.clientpage.Main2Activity.onCreate(Main2Activity.java:50)

saveDataBase = (Button) findViewById(R.id.save_btn);
saveDataBase.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
             // code...
            }
});

Check weather button id is correct and is in same layout of the activity or not.

Wasim K. Memon
  • 5,979
  • 4
  • 40
  • 55