I am attempting to pass an object from one activity to another. I have tried using just intent and how with bundle but I am not sure what is wrong. I have looked at similar solutions here and that is where I got most of my code for this, but it seems that my copy and paste does not work.
This is my main class
    public class MainActivity extends AppCompatActivity {
    Item item;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        createNewItem();
        Button buttonOne = findViewById(R.id.itemButton);
        buttonOne.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                Intent intent = new Intent(getApplicationContext(), ViewItemDetails.class);
                Bundle bundle = new Bundle();
                bundle.putSerializable("item", item);
                intent.putExtras(bundle);
                startActivity(intent);
            }
        });
    }
    void createNewItem(){
        item=new Item("Pixel 4","https://google.com",1000.00);
    }
}
This is the activity I am trying to go to:
    public class ViewItemDetails extends AppCompatActivity {
    Intent intent= getIntent();
    Bundle bundle= intent.getExtras();
    Item item = (Item) bundle.getSerializable("item");
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_view_item_details);
        setStrings();
        setButtons();
    }
    void setStrings() {
        try {
            TextView nameTextView = findViewById(R.id.itemNameid);
            nameTextView.setText(item.getItemName());
            TextView itemInitTV = findViewById(R.id.initalPriceNumID);
            itemInitTV.setText(Double.toString(item.getInitPrice()));
            TextView itemCurrTV = findViewById(R.id.currentPriceNumid);
            itemCurrTV.setText(Double.toString(item.getCurrentPrice()));
        }catch (NullPointerException e){
            //do noting
        }
    }
    void setButtons(){
        Button buyButton = findViewById(R.id.buyButtonid);
        buyButton.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                Uri uriUrl = Uri.parse(item.getWebaddress());
                Intent launchBrowser = new Intent(Intent.ACTION_VIEW, uriUrl);
                startActivity(launchBrowser);
            }
        });
        Button refreshButton= findViewById(R.id.refrechId);
        refreshButton.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                Double newPrice= new GenerateNewPrice().GenerateNewPrice(item.getWebaddress());
                Toast toast = Toast.makeText(getApplicationContext(),Double.toString(newPrice), Toast.LENGTH_SHORT);
                toast.show();
            }
        });
        Button editButton= findViewById(R.id.editid);
        editButton.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                Toast toast = Toast.makeText(getApplicationContext(),"Attempt to edit", Toast.LENGTH_SHORT);
                toast.show();
            }
        });
    }
}
This is the object I am attempting to pass between activities.
    public class Item implements Serializable {
    String itemName, webaddress;
    Double initPrice, CurrentPrice;
    public Item(String itemName, String webaddress, Double initPrice) {
        this.itemName = itemName;
        this.webaddress = webaddress;
        this.initPrice = initPrice;
    }
    public String getItemName() {
        return itemName;
    }
    public String getWebaddress() {
        return webaddress;
    }
    public Double getInitPrice() {
        return initPrice;
    }
    public Double getCurrentPrice() {
        return CurrentPrice;
    }
 }
When I run the app on my phone I click the button and then the app closes.
Thank you for your help. If needed I can add more code. I have seen similar questions here, but they have not worked for me. I got similar code from those posts but have not solved my solution. I appreciate any feedback that is give. Thank you for your time.
 
     
     
     
     
     
    