How can i delete certain elements when button is pressed in android

  • A+
Category:Languages

how would you go about deleting certain elements, such as a spinner and checkbox when you press a button in an app?

Thank you!

Edit:

In my situation, I have a 'duplicate' button when where you click that, a checkbox appears, and you can add as many as you want. so as I want to delete them I'm unsure because I don't have a set variable name for these duplicated checkboxes to delete..below is the code that makes new checkboxes. NOTE: buttontest is the button that should be deleting the other items. I have highlited the code in bold that I think is the problem.

  public class create extends AppCompatActivity {       private LinearLayout mLinearLayout;      private ArrayList<SearchableSpinner> mSpinners;     //TODO add the below list of buttons and checkboxes     private List<AppCompatButton> mButtons = new ArrayList<>();     private List<CheckBox> mCheckboxes = new ArrayList<>();     Button buttontest;          @Override     protected void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.activity_create);         getSupportActionBar().setDisplayHomeAsUpEnabled(true);             mSpinners = new ArrayList<>();          mLinearLayout = findViewById(R.id.my_linearLayout);          //mLinearLayout.addView(makeSpinner());    // First spinner            FloatingActionButton floatingActionButton =                 (FloatingActionButton) findViewById(R.id.fab);          floatingActionButton.setOnClickListener(new View.OnClickListener() {             @Override             public void onClick(View view) {                 Toast.makeText(getBaseContext(), "Item added!" , Toast.LENGTH_SHORT ).show();                  // Handle the click.                 Spinner spinner = makeSpinner();                 mLinearLayout.addView(spinner); //Add another spinner                   LinearLayout.LayoutParams layoutParams = (LinearLayout.LayoutParams)spinner.getLayoutParams();                 layoutParams.setMargins( 5,  70,  10,  0);                  Resources resources = getResources();                 DisplayMetrics metrics = resources.getDisplayMetrics();                  layoutParams.height = (int) (80 * ((float)metrics.densityDpi / DisplayMetrics.DENSITY_DEFAULT)); //80                 layoutParams.width = (int) (240 * ((float)metrics.densityDpi / DisplayMetrics.DENSITY_DEFAULT)); //240                 spinner.setLayoutParams(layoutParams);                   //Add a new button                 AppCompatButton newButton = makeButton();                 mLinearLayout.addView(newButton);      // Add another button                 //TODO add button to the list                 mButtons.add(newButton);                   //Add a new checkbox                 CheckBox newCheckbox = makeCheckbox();                 mLinearLayout.addView(newCheckbox);                  //TODO add checkbox to your list                 mCheckboxes.add(newCheckbox);             }         });      }   //DUPLICATING ITEMS WHEN + IS PRESSED      private CheckBox makeCheckbox() {         //Create new Checkbox         CheckBox checkbox = new CheckBox(this);          // Setup layout         LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(                 LinearLayout.LayoutParams.MATCH_PARENT,                 LinearLayout.LayoutParams.WRAP_CONTENT);         checkbox.setLayoutParams(layoutParams);         return checkbox;     }       private AppCompatButton makeButton() { //creates new buttons i need         //Create new Button         AppCompatButton button = new AppCompatButton(this);         // code for deleting the buttons i need //         buttontest = (Button)findViewById(R.id.buttontest);         buttontest.setOnClickListener(new View.OnClickListener() {             @Override             public void onClick(View v) {                    Toast.makeText(getBaseContext(), "Item removed." , Toast.LENGTH_SHORT ).show();                  //makeCheckbox().setVisibility(View.GONE);                 //buttontest.setVisibility(View.GONE);                 //TODO when you want to make one of them gone do the following                 //Last button disappears                 if(mButtons.size() > 0) {                     mButtons.get(mButtons.size()-1).setVisibility(View.GONE);                     //mButtons.remove(mButtons.size()-1);                 }                  //Last checkbox disappears                 if(mCheckboxes.size() > 0) {                     mCheckboxes.get(mCheckboxes.size()-1).setVisibility(View.GONE);                   //  mCheckboxes.remove(mCheckboxes.size()-1);                 }                   //Last checkbox disappears                 if(mSpinners.size() > 0) {                     mSpinners.get(mSpinners.size()-1).setVisibility(View.GONE);                    // mSpinners.remove(mSpinners.size()-1);                 }                  //Please note that the number within get() is the index of the buttons or                 //checkboxes you added so there could                 //be any number of items depends on how many you added              }         });            // Setup layout         LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(                 LinearLayout.LayoutParams.MATCH_PARENT,                 LinearLayout.LayoutParams.WRAP_CONTENT);         button.setBackgroundColor(Color.parseColor("#ffffff"));           return button;     }      private Spinner makeSpinner() {         //opens csv         InputStream inputStream = getResources().openRawResource(R.raw.shopitems);         CSVFile csvFile = new CSVFile(inputStream);         List<String> itemList = csvFile.read();          //Create new spinner        // SearchableSpinner spinner = (SearchableSpinner) new Spinner(this, Spinner.MODE_DROPDOWN);         SearchableSpinner spinner = new SearchableSpinner(this);           // Setup layout         LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(                 LinearLayout.LayoutParams.MATCH_PARENT,                 LinearLayout.LayoutParams.WRAP_CONTENT);         spinner.setLayoutParams(layoutParams);         MyListAdapter adapter = new MyListAdapter(this, R.layout.listrow, R.id.txtid, itemList);           spinner.setAdapter(adapter);            //Add it to your list of spinners so you can retrieve their data when you click the getSpinner button         mSpinners.add(spinner);         return spinner;     }        //csv file code     private class CSVFile {         InputStream inputStream;          public CSVFile(InputStream inputStream) {             this.inputStream = inputStream;         }          public List<String> read() {              List<String> resultList = new ArrayList<String>();             BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));             try {                 String line;                 while ((line = reader.readLine()) != null) {                     String[] row = line.split(",");                     resultList.add(row[1]);                 }             } catch (IOException e) {                 Log.e("Main", e.getMessage());             } finally {                 try {                     inputStream.close();                 } catch (IOException e) {                     Log.e("Main", e.getMessage());                 }             }             return resultList;         }     } } 

 


here’s what I think you should do: you should create a list of buttons and a list of checkboxes like you did for spinners where you can get instances of the buttons and checkboxes you created:

private LinearLayout mLinearLayout;  private ArrayList<Spinner> mSpinners; //TODO add the below list of buttons and checkboxes private List<AppCompatButton> mButtons = new ArrayList<>(); private List<CheckBox> mCheckboxes = new ArrayList<>(); Button buttontest;      @Override protected void onCreate(Bundle savedInstanceState) {     super.onCreate(savedInstanceState);     setContentView(R.layout.activity_create);     getSupportActionBar().setDisplayHomeAsUpEnabled(true);         mSpinners = new ArrayList<>();      mLinearLayout = findViewById(R.id.my_linearLayout);      //mLinearLayout.addView(makeSpinner());    // First spinner        FloatingActionButton floatingActionButton =             (FloatingActionButton) findViewById(R.id.fab);      floatingActionButton.setOnClickListener(new View.OnClickListener() {         @Override         public void onClick(View view) {             // Handle the click.             Spinner spinner = makeSpinner();             mLinearLayout.addView(spinner); //Add another spinner               LinearLayout.LayoutParams layoutParams = (LinearLayout.LayoutParams)spinner.getLayoutParams();             layoutParams.setMargins( 5,  70,  10,  0);             layoutParams.height = 80;//pixels             layoutParams.width = 240;//pixels             spinner.setLayoutParams(layoutParams);               //Add a new button             AppCompatButton newButton = makeButton();             mLinearLayout.addView(newButton);      // Add another button             //TODO add button to the list             mButtons.add(newButton);               //Add a new checkbox             CheckBox newCheckbox = makeCheckbox();             mLinearLayout.addView(newCheckbox);              //TODO add checkbox to your list             mCheckboxes.add(newCheckbox);         }     });      //TODO when you want to make one of them gone do the following     //Last button disappears     If(mButtons.size() > 0) {          mButtons.get(mButtons.size()-1).setVisibility(View.GONE);     }      //Last checkbox disappears     If(mCheckboxes.size() > 0) {        mCheckboxes.get(mCheckboxes.size() - 1).setVisibility(View.GONE);     }     //Please note that the number within get() is the index of the buttons or     //checkboxes you added so there could     //be any number of items depends on how many you added  }   //DUPLICATING ITEMS WHEN + IS PRESSED  private CheckBox makeCheckbox() {     //Create new Checkbox     CheckBox checkbox = new CheckBox(this);      // Setup layout     LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(             LinearLayout.LayoutParams.MATCH_PARENT,             LinearLayout.LayoutParams.WRAP_CONTENT);     checkbox.setLayoutParams(layoutParams);     return checkbox; }   **private AppCompatButton makeButton() { //creates new buttons i need     //Create new Button     AppCompatButton button = new AppCompatButton(this);     // code for deleting the buttons i need //     buttontest = (Button)findViewById(R.id.buttontest);     buttontest.setOnClickListener(new View.OnClickListener() {         @Override         public void onClick(View v) {             buttontest.setVisibility(View.GONE);             makeCheckbox().setVisibility(View.GONE);         }     });**            // Setup layout     LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(             LinearLayout.LayoutParams.MATCH_PARENT,             LinearLayout.LayoutParams.WRAP_CONTENT);     button.setBackgroundColor(Color.parseColor("#ffffff"));       return button; }  private Spinner makeSpinner() {     //opens csv     InputStream inputStream = getResources().openRawResource(R.raw.shopitems);     CSVFile csvFile = new CSVFile(inputStream);     List<String> itemList = csvFile.read();      //Create new spinner     Spinner spinner = new Spinner(this, Spinner.MODE_DROPDOWN);      // Setup layout     LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(             LinearLayout.LayoutParams.MATCH_PARENT,             LinearLayout.LayoutParams.WRAP_CONTENT);     spinner.setLayoutParams(layoutParams);     MyListAdapter adapter = new MyListAdapter(this, R.layout.listrow, R.id.txtid, itemList);       spinner.setAdapter(adapter);      //Add it to your list of spinners so you can retrieve their data when you click the getSpinner button     mSpinners.add(spinner);     return spinner; }    //csv file code private class CSVFile {     InputStream inputStream;      public CSVFile(InputStream inputStream) {         this.inputStream = inputStream;     }      public List<String> read() {          List<String> resultList = new ArrayList<String>();         BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));         try {             String line;             while ((line = reader.readLine()) != null) {                 String[] row = line.split(",");                 resultList.add(row[1]);             }         } catch (IOException e) {             Log.e("Main", e.getMessage());         } finally {             try {                 inputStream.close();             } catch (IOException e) {                 Log.e("Main", e.getMessage());             }         }         return resultList;     } } } 

New edit:

public class create extends AppCompatActivity {       private LinearLayout mLinearLayout;      private ArrayList<Spinner> mSpinners;     //TODO add the below list of buttons and checkboxes     private List<AppCompatButton> mButtons = new ArrayList<>();     private List<CheckBox> mCheckboxes = new ArrayList<>();     Button buttontest;          @Override     protected void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.activity_create);         getSupportActionBar().setDisplayHomeAsUpEnabled(true);             mSpinners = new ArrayList<>();          mLinearLayout = findViewById(R.id.my_linearLayout);          //mLinearLayout.addView(makeSpinner());    // First spinner            FloatingActionButton floatingActionButton =                 (FloatingActionButton) findViewById(R.id.fab);          floatingActionButton.setOnClickListener(new View.OnClickListener() {             @Override             public void onClick(View view) {                 // Handle the click.                 Spinner spinner = makeSpinner();                 mLinearLayout.addView(spinner); //Add another spinner                   LinearLayout.LayoutParams layoutParams = (LinearLayout.LayoutParams)spinner.getLayoutParams();                 layoutParams.setMargins( 5,  70,  10,  0);                 layoutParams.height = 80;//pixels                 layoutParams.width = 240;//pixels                 spinner.setLayoutParams(layoutParams);                   //Add a new button                 AppCompatButton newButton = makeButton();                 mLinearLayout.addView(newButton);      // Add another button                 //TODO add button to the list                 mButtons.add(newButton);                   //Add a new checkbox                 CheckBox newCheckbox = makeCheckbox();                 mLinearLayout.addView(newCheckbox);                  //TODO add checkbox to your list                 mCheckboxes.add(newCheckbox);             }         });      }   //DUPLICATING ITEMS WHEN + IS PRESSED      private CheckBox makeCheckbox() {         //Create new Checkbox         CheckBox checkbox = new CheckBox(this);          // Setup layout         LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(                 LinearLayout.LayoutParams.MATCH_PARENT,                 LinearLayout.LayoutParams.WRAP_CONTENT);         checkbox.setLayoutParams(layoutParams);         return checkbox;     }       private AppCompatButton makeButton() { //creates new buttons i need         //Create new Button         AppCompatButton button = new AppCompatButton(this);         // code for deleting the buttons i need //         buttontest = (Button)findViewById(R.id.buttontest);         buttontest.setOnClickListener(new View.OnClickListener() {             @Override             public void onClick(View v) {                 //makeCheckbox().setVisibility(View.GONE);                 //buttontest.setVisibility(View.GONE);                 //TODO when you want to make one of them gone do the following                 //Last button disappears                 if(mButtons.size() > 0) {                     mButtons.get(mButtons.size()-1).setVisibility(View.GONE); mButtons.remove(mButtons.size()-1);                }                 //Last checkbox disappears               if(mCheckboxes.size() > 0) {                    mCheckboxes.get(mCheckboxes.size()-1).setVisibility(View.GONE); mCheckboxes.remove(mCheckboxes.size()-1);                 }         //Please note that the number within get() is the index of the buttons or         //checkboxes you added so there could         //be any number of items depends on how many you added              }         });               // Setup layout         LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(                 LinearLayout.LayoutParams.MATCH_PARENT,                 LinearLayout.LayoutParams.WRAP_CONTENT);         button.setBackgroundColor(Color.parseColor("#ffffff"));           return button;     }      private Spinner makeSpinner() {         //opens csv         InputStream inputStream = getResources().openRawResource(R.raw.shopitems);         CSVFile csvFile = new CSVFile(inputStream);         List<String> itemList = csvFile.read();          //Create new spinner         Spinner spinner = new Spinner(this, Spinner.MODE_DROPDOWN);          // Setup layout         LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(                 LinearLayout.LayoutParams.MATCH_PARENT,                 LinearLayout.LayoutParams.WRAP_CONTENT);         spinner.setLayoutParams(layoutParams);         MyListAdapter adapter = new MyListAdapter(this, R.layout.listrow, R.id.txtid, itemList);           spinner.setAdapter(adapter);          //Add it to your list of spinners so you can retrieve their data when you click the getSpinner button         mSpinners.add(spinner);         return spinner;     }        //csv file code     private class CSVFile {         InputStream inputStream;          public CSVFile(InputStream inputStream) {             this.inputStream = inputStream;         }          public List<String> read() {              List<String> resultList = new ArrayList<String>();             BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));             try {                 String line;                 while ((line = reader.readLine()) != null) {                     String[] row = line.split(",");                     resultList.add(row[1]);                 }             } catch (IOException e) {                 Log.e("Main", e.getMessage());             } finally {                 try {                     inputStream.close();                 } catch (IOException e) {                     Log.e("Main", e.getMessage());                 }             }             return resultList;         }     } } 

Comment

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: