2016-11-15 4 views
1

Ich habe mehrere TextViews dynamisch in einem Layout hinzugefügt,ANDROID: Löschen Textviews, die dynamisch erstellt werden

for(int x=4;x<result.length();x++) 
     { 
      JSONObject collegeData = result.getJSONObject(x); 
      Log.i("Classlist",""+x); 
      TextView tv = new TextView(this); 
      Animation animation = AnimationUtils.loadAnimation(student_profile.this, android.R.anim.slide_in_left); 
      tv.startAnimation(animation); 
      tv.setTag(tag); 
      tv.setLayoutParams(lparams); 
      tv.setText(collegeData.getString("date") + " " + collegeData.getString("day_name")); 
      tv.setTextSize(17); 
      this.linearLayout_top5classes.addView(tv); 

     } 

Diese Schleife textViews entsprechend den Daten ergänzt durch die URL empfangen, jetzt will ich die Textviews entfernen, die waren in dieser Schleife erstellt und ich kann nicht eine richtige Methode zu tun .... ich will nur, um diese Textviews entfernen und nicht alle Textviews

UPDATE

F finden i verwendet rste

int prv=0; 

dann

String tag ="textView_"+x; 
prv++; 

in der ersten Schleife mehrere Tags zu erzeugen dann ich sie entfernt mit

for(int x=4;x<prv;x++) 
     { 
     View view = this.linearLayout_top5classes.findViewWithTag("textView_"+x); 
     this.linearLayout_top5classes.removeView(view); 
      Log.i("prv value",prv+""); 
     } 

Antwort

3

Natürlich gibt es eine Möglichkeit ist. Suchen Sie einfach nach Kind Ansichten mit dem Tag:

View view = this.linearLayout_top5classes.findViewWithTag(tag); 
this.linearLayout_top5classes.removeView(view); 

Wenn Sie IDs zu Kind Ansichten hinzufügen, dann:

View view = this.linearLayout_top5classes.findViewById(id); 
this.linearLayout_top5classes.removeView(view); 
0

Wenn möglich, verschiedene Layout für die dynamisch hinzugefügt Textviews versuchen Sie es mit. und dann nur Ansichten aus dem zweiten Layout entfernen. Durch die Verwendung von ,:

linearLayout_top5classes.removeAllViews(); 
+0

haben Sie OP gelesen? 'Ich möchte nur diese Textansichten und nicht alle Textansichten entfernen. Ihre Antwort entfernt alle Ansichten. –

+0

Verwenden Sie wenn möglich ein anderes Layout für dynamisch hinzugefügte Textansichten. @ N J –

+0

Danke. Ich habe das Gleiche getan und es hat funktioniert. –

0

Um bestimmte Ansicht mit tag

View view = this.linearLayout_top5classes.findViewWithTag(tag); 

this.linearLayout_top5classes.removeView(view) 

entfernen in Ansicht von der bestimmten Position

this.linearLayout_top5classes.removeViewAt(position); 

Verwenden folgende Logik zu entfernen jede Ansicht vom Layout zu entfernen.

this.linearLayout_top5classes..post(new Runnable() { 
    public void run() { 
     this.linearLayout_top5classes..removeView(view); 
    } 
}); 
Verwandte Themen