// DogArrayList Example // Source code file: MainActivity.java package it372.smith.savedogarraylist; import android.os.Bundle; import android.widget.Button; import android.widget.TextView; import androidx.activity.EdgeToEdge; import androidx.appcompat.app.AppCompatActivity; import androidx.core.graphics.Insets; import androidx.core.view.ViewCompat; import androidx.core.view.WindowInsetsCompat; import java.util.ArrayList; public class MainActivity extends AppCompatActivity { // Declare instance variables. ArrayList dogs; Button btn1, btn2, btn3, btn4; TextView tv; // onCreate fires when app is first created, or // recreated after being destroyed when app is rotated. @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Set activity_main.xml as startup activity. setContentView(R.layout.activity_main); // Create objects for Spinner and button widgets. btn1 = findViewById(R.id.button1); btn2 = findViewById(R.id.button2); btn3 = findViewById(R.id.button3); btn4 = findViewById(R.id.button4); tv = findViewById(R.id.textView); // If bundle is not null, restore arraylist from // bundle. Otherwise instantiate empty arraylist. if (savedInstanceState != null) { dogs = (ArrayList) savedInstanceState.getSerializable("arrlist"); } else { dogs = new ArrayList( ); } // OnClickListener for button1; addd Dog1 information to arraylist. btn1.setOnClickListener( v -> { Dog d = new Dog("Coco", "Chihuahua", 4); dogs.add(d); }); // OnClickListener for button2; addd Dog2 information to arraylist. btn2.setOnClickListener( v -> { Dog d = new Dog("Puffy", "Wheaten Terrior", 8); dogs.add(d); }); // OnClickListener for button2; addd Dog2 information to arraylist. btn3.setOnClickListener( v -> { Dog d = new Dog("Bentley", "Bernese Mountain Dog", 6); dogs.add(d); }); btn4.setOnClickListener( v -> { String output = ""; for(Dog d : dogs) { output += d.toString( ) + "\n"; } tv.setText(output); }); } // Immediately before app is destroyed because emulator // is rotated, save the arraylist in a bundle. public void onSaveInstanceState(Bundle savedInstanceState) { super.onSaveInstanceState(savedInstanceState); savedInstanceState.putSerializable("arrlist", dogs); } }