最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

java - Why my object equals null, when i want to share it between two activities - Stack Overflow

programmeradmin1浏览0评论

My task is to click on the button "add" in 1_activity, which sends me to 2_activity where i need to key my data into fields and click on the button "save", which saves the data and sends me back to the 1_activity, where i click on another button "see" and it sends me to 2_acitivty with filled data

1_activity

`public class MainActivity extends AppCompatActivity { ActivityMainBinding binding; public static final int CODE = 0; public static final String USER = "USER"; Intent i; public Form user; public String name;
@Override
public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if(data != null){
        if(requestCode == CODE && resultCode == RESULT_OK){
            binding.btnSee.setVisibility(View.VISIBLE); //here im changing the button
            binding.btnAdd.setVisibility(View.INVISIBLE);
            Bundle args = getIntent().getExtras();
            if(args != null){
                user = (Form) args.getSerializable(Form.class.getSimpleName());
                assert user != null;
                String name = user.getName(); // add data,given from the 2_activity
                String surname = user.getSurname();
                String address = user.getAddress();
                String site = user.getSite();
                int phone = user.getPhone();
                user = new Form(name,surname,phone,site,address);
            }
        }
    }
}

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    EdgeToEdge.enable(this);
    binding = ActivityMainBinding.inflate(getLayoutInflater());
    setContentView(binding.getRoot());
    binding.btnSee.setVisibility(View.INVISIBLE);
    binding.btnAdd.setOnClickListener(v -> {
        i = new Intent(getApplicationContext(), UserForm.class);
        startActivityForResult(i,CODE);
    });

    binding.btnSee.setOnClickListener(view -> {
        i = new Intent(getApplicationContext(),UserForm.class);
        i.putExtra(Form.class.getSimpleName(),user); //giving filled data back to 2_activity
        startActivity(i);
    });
 }
}`

2_activity

`

@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); EdgeToEdge.enable(this); binding = ActivityUserFormBinding.inflate(getLayoutInflater()); setContentView(binding.getRoot());    

    Bundle args = getIntent().getExtras();
    if(args != null){
        user = (Form) args.getSerializable(Form.class.getSimpleName());
    }

    if(user != null){ *//this condition is being skipped, this is my problem*
        binding.name.setText(user.getName());
        binding.surname.setText(user.getSurname());
        binding.phone.setText(String.valueOf(user.getPhone()));
        binding.site.setText(user.getSite());
        binding.address.setText(user.getAddress());
    }

    binding.btnSubmit.setOnClickListener(v -> {
        String name = binding.name.getText().toString(); //filling entered data
        String surname = binding.surname.getText().toString();
        String address = binding.address.getText().toString();
        String site = binding.site.getText().toString();
        int phone = Integer.parseInt(binding.phone.getText().toString());

        user = new Form(name,surname,phone,site,address);
        intent = new Intent(getApplicationContext(),MainActivity.class); intent.putExtra(Form.class.getSimpleName(), user); //sending my data to 1_activity //intent.putExtra(INFO,user); setResult(RESULT_OK,intent); finish(); }); } }`

my Form class

public class Form implements Serializable { String name, surname, site, address; int phone;
public Form(String name, String surname,int phone, String site, String address){
    this.name = name;
    this.surname = surname;
    this.site = site;
    this.address = address;
    this.phone = phone;
}

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public String getSurname() {
    return surname;
}

public void setSurname(String surname) {
    this.surname = surname;
}

public String getSite() {
    return site;
}

public void setSite(String site) {
    this.site = site;
}

public void setAddress(String address) {
    this.address = address;
}

public String getAddress() {
    return address;
}

public int getPhone() {
    return phone;
}

public void setPhone(int phone) {
    this.phone = phone;
}`
发布评论

评论列表(0)

  1. 暂无评论