0

I getting an error when I passing values between two activities using intent. "Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference"

first activity intent code

 private void add() {
    String name = nameAdd.getText().toString();
    String date = dateAdd.getText().toString();
    Intent intent = new Intent(this,Anniversary.class);
    intent .putExtra(NAME,name);
    intent .putExtra(DATE,date);
    startActivity(intent);
}

the second activity where I get the error in .setText

private void add() {
    Intent intent = getIntent();
    String name = intent.getStringExtra(Add.NAME);
    String date = intent.getStringExtra(Add.DATE);

    Datetxt.setText(date);   // error here
    Nametxt.setText(name);   // and here
}
Obaidi
  • 1
  • 3

1 Answers1

-1

all the code for the first activity

public class Add extends AppCompatActivity {

private TextView dateAdd, nameAdd;
private List<String> namesList;
public static final String NAME = "name";
public static final String DATE = "date";

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_add);
    namesList = new ArrayList<String>();
    dateAdd = findViewById(R.id.addDateAnn);
    nameAdd = findViewById(R.id.nameAddtxt);
    Button save = findViewById(R.id.addBtn);
    
    save.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            add();
        }
    });


    Calendar calendar = Calendar.getInstance();

    int year = calendar.get(Calendar.YEAR);
    int month = calendar.get(Calendar.MONTH);
    int day = calendar.get(Calendar.DAY_OF_MONTH);
    dateAdd.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            DatePickerDialog datePickerDialog = new DatePickerDialog(
                    Add.this, new DatePickerDialog.OnDateSetListener() {
                @Override
                public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
                    String sDate = dayOfMonth + "/" + month + "/" + year;
                    dateAdd.setText(sDate);
                }
            }, year,month,day
            );
            datePickerDialog.show();
        }
    });
    nameAdd.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
                showCustomDialog();
        }
    });
    Button cancel = findViewById(R.id.cancleBtn);
    cancel.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
           finish();
        }
    });
}

private void showCustomDialog() {
     Dialog dialog = new Dialog(Add.this);
    dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
    dialog.setCancelable(true);
    dialog.setContentView(R.layout.add_name_dialog);

    EditText addName = dialog.findViewById(R.id.editTextDialog);
    Button submitBtn = dialog.findViewById(R.id.addNameDialogBtn);

    submitBtn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            String name = addName.getText().toString();
            dialog.dismiss();
            nameAdd.setText(name);
        }
    });
    dialog.show();;
}
private void add() {
    String name = nameAdd.getText().toString();
    String date = dateAdd.getText().toString();
    Intent intent = new Intent(this,Anniversary.class);
    intent .putExtra(NAME,name);
    intent .putExtra(DATE,date);
    startActivity(intent);
}

}

all the code for the second activity

public class Anniversary extends AppCompatActivity {

private RecyclerView recyclerView;
private RecyclerView.LayoutManager layoutManager;
private RecyclerView.Adapter adapter;
TextView Nametxt;
TextView Datetxt;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_anniversary);
    Nametxt = findViewById(R.id.annviersaryNametxt);
    Datetxt = findViewById(R.id.annviersaryDatetxt);


    recyclerView = findViewById(R.id.anniversaryRecylerView);
    layoutManager = new LinearLayoutManager(this);
    recyclerView.setLayoutManager(layoutManager);

    adapter = new AnniversaryAdapter();
    recyclerView.setAdapter(adapter);


    Toolbar toolbar = findViewById(R.id.toolbar);
    toolbar.setTitle(getResources().getString(R.string.app_name));

    //define the recyclerview
    RecyclerView recyclerView = findViewById(R.id.anniversaryRecylerView);
    setSupportActionBar(toolbar);

    FloatingActionButton fab = findViewById(R.id.fab);
    fab.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            StartNewActivity();
        }
    });
    add();

}



// start new activity method
public void StartNewActivity(){
    Intent intent = new Intent(this,Add.class);
    startActivity(intent);
}
private void add() {
    Intent intent = getIntent();
    String name = intent.getStringExtra(Add.NAME);
    String date = intent.getStringExtra(Add.DATE);

    Datetxt.setText(date);
    Nametxt.setText(name);
}

}

Obaidi
  • 1
  • 3