ANDROID:删除动态创建的文本视图

时间:2016-11-15 10:47:11

标签: android textview

我在布局中动态添加了多个TextViews

 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);

        }

此循环根据网址收到的数据添加textViews,现在我想删除在此循环中创建的文本视图,我无法找到合适的方法来执行此操作....我只想要删除这些文本视图而不是所有文本视图

更新

首先我用了

int prv=0;

然后

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

在第一个循环中生成多个标签 然后我用

删除它们
  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+"");
        }

3 个答案:

答案 0 :(得分:3)

当然有办法。只需使用标记:

查找子视图
View view = this.linearLayout_top5classes.findViewWithTag(tag);
this.linearLayout_top5classes.removeView(view);

如果您向子视图添加ID,则:

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

答案 1 :(得分:0)

如果可能,请尝试为动态添加的文本视图使用不同的布局。然后仅从第二个布局中删除视图。使用,:

linearLayout_top5classes.removeAllViews();

答案 2 :(得分:0)

使用dict_changes = json.loads(changes_str)

删除特定视图
tag

从特定位置删除视图

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

this.linearLayout_top5classes.removeView(view)

使用以下逻辑从布局中删除任何视图。

this.linearLayout_top5classes.removeViewAt(position);