2017-07-02 5 views
0

Ich verwende FlowLayout. Ich habe hier so ein button draußen.Entfernen Sie ImageView programmgesteuert aus benutzerdefinierten Layout

enter image description here

die Taste im Layout Drücken fügt das gleiche Bild so oft wie die Taste gedrückt wird. Ich habe herausgefunden, wie man ein Bild hinzufügt, aber wie man ein Bild löscht.

numberButton.setOnValueChangeListener(new ElegantNumberButton.OnValueChangeListener() { 
     @Override 
     public void onValueChange(ElegantNumberButton view, int oldValue, int newValue) { 
      // Добавляем новый ImageView 
      if (oldValue < newValue) { 
       ImageView imageView = new ImageView(CreateNewTripActivity.this); 
       imageView.setImageResource(R.drawable.i_travel_logo_1); 
       ViewGroup.LayoutParams imageViewLayoutParams = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); 
       imageViewLayoutParams.height = 300; 
       imageViewLayoutParams.width = 300; 
       imageView.setLayoutParams(imageViewLayoutParams); 
       imageView.setId(); 
       flowLayout.addView(imageView); 
      } else { 
       //Удаляем 
       AlertDialog.Builder ad = new AlertDialog.Builder(CreateNewTripActivity.this); 
       ad.setTitle(getResources().getString(R.string.title_delete_person)); // заголовок 
       ad.setMessage(getResources().getString(R.string.dialog_aushure)); // сообщение 
       ad.setPositiveButton(getResources().getString(R.string.button_ok), new DialogInterface.OnClickListener() { 
        @Override 
        public void onClick(DialogInterface dialog, int arg1) { 
         Toast.makeText(CreateNewTripActivity.this, "Вы сделали правильный выбор", 
           Toast.LENGTH_LONG).show(); 

         //TO DO....... 
         flowLayout.removeView(imageView); 
        } 
       }); 
       ad.setNegativeButton(getResources().getString(R.string.button_cancel), new DialogInterface.OnClickListener() { 
        public void onClick(DialogInterface dialog, int arg1) { 
         Toast.makeText(CreateNewTripActivity.this, "Возможно вы правы", Toast.LENGTH_LONG) 
           .show(); 
        } 
       }); 
       ad.setCancelable(false); 

      } 
     } 
    }); 
+0

zu jeder Imageview eindeutiger ID wird kostenlos in? so ähnlich? // Ich habe über die Option GONE gelesen. Trotzdem möchte ich das Aussehen löschen und nicht ausblenden. –

+0

Andere als GONE-Option, haben Sie versucht, indem Sie ImageView = null und Aufruf von GC von System.gc(); Sie können ImageView ein schwaches Referenzobjekt machen. –

Antwort

0

Um das letzte Image hinzugefügt, um Ihr Flowlayout zu löschen, brauchen Sie nur das tun:

flowLayout.removeViewAt(flowLayout.getChildCount() - 1); 
Verwandte Themen