2014-10-05 72 views
0

我使用wordImage创建了n个图像并分配了不同的Id.This发生在按钮单击添加上。当我点击所有我创建的图像应该从视图中移除时(Head是视图),还有另一个按钮被删除。 Plz帮助如何做到这一点。删除Imageview创建的所有图像

onclick of add button 
      for (int getwordcount = 0; getwordcount <5; getwordcount++) { 
           int i=0; 
           WordImage = new ImageView(this); 
           WordImage.setId(getwordcount); 
           WordImage.setBackgroundResource(alphabetsimages[getwordcount]); 
           RelativeLayout.LayoutParams para=new RelativeLayout.LayoutParams(
             RelativeLayout.LayoutParams.FILL_PARENT, 
             RelativeLayout.LayoutParams.FILL_PARENT); 
           para.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM); 
           para.leftMargin=maragin+=54; 
           para.bottomMargin=25; 
           para.width=BtnNext.getWidth()/3; 
           para.height=BtnNext.getHeight(); 
           WordImage.setLayoutParams(para); 
           WordImage.setTag(getSplitString); 
           Head.addView(WordImage); 
           } 

删除按钮 的onclick只有最后------------->Head.removeView(WordImage); 创建图像从视图移除。 如何删除使用wordimage创建的所有图像。任何帮助将不胜感激。

+0

'用wordImage创建n个图像'你创建了什么样的'图像'? '一个按钮点击add.'您添加到哪里?头部我看。头是什么?请显示完整删除代码。什么是'WordImage'? – greenapps 2014-10-05 10:47:49

回答

0

WordImage保存链接只为最后ImageView。上一页链接在此行中丢失:

WordImage = new ImageView(this); 

这就是为什么Head.removeView(WordImage)只删除最后一个图像。 如果你想删除所有添加的图像元素,最简单的方法做到这一点是添加的RelativeLayout容器是这样的:

Head.removeAllViews(); 

在其他:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
       android:orientation="vertical" 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent"  > 

    <RelativeLayout android:id="@+id/Head" android:layout_width="wrap_content" android:layout_height="wrap_content"/> 

    <Button 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="add" 
      android:onClick="onClickAdd" 
      android:id="@+id/button" android:layout_alignParentStart="true"/> 
    <Button 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="remove" 
      android:onClick="onClickRemove" 
      android:layout_alignBaseline="@id/button" 
      android:layout_alignParentRight="true"/> 
</RelativeLayout> 

那么你只能通过一个命令删除所有图像情况下,如果你需要删除单独的图像,你必须删除类似的“添加”块周期的项目:

for (int getwordcount = 0; getwordcount <alphabetsimages.length; getwordcount++) { 
      Head.removeView(findViewById(getwordcount)); 
} 

Activity类将是这样的:

public class MyActivity extends Activity { 

    RelativeLayout Head; 
    int alphabetsimages[] = {android.R.drawable.arrow_down_float, android.R.drawable.btn_dropdown, android.R.drawable.btn_minus, android.R.drawable.ic_dialog_map}; 
    ImageView WordImage; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 


    } 
    public void onClickAdd(View v){ 
     int margin = 0; 
     for (int getwordcount = 0; getwordcount <alphabetsimages.length; getwordcount++) { 
      int i=0; 
      WordImage = new ImageView(this); 
      WordImage.setId(getwordcount); 
      WordImage.setBackgroundResource(alphabetsimages[getwordcount]); 
      RelativeLayout.LayoutParams para=new RelativeLayout.LayoutParams(
        RelativeLayout.LayoutParams.FILL_PARENT, 
        RelativeLayout.LayoutParams.FILL_PARENT); 
      para.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM); 
      para.leftMargin=margin+=54; 
      para.bottomMargin=25; 
      para.width = 40; 
      para.height = 40; 
      WordImage.setLayoutParams(para); 
      Head= (RelativeLayout)findViewById(R.id.Head); 
      Head.addView(WordImage); 
     } 
    } 

    public void onClickRemove(View v){ 
     //Head.removeAllViews(); 
     for (int getwordcount = 0; getwordcount <alphabetsimages.length; getwordcount++) { 
      Head.removeView(findViewById(getwordcount)); 
     } 
    } 
} 

我希望这就是您的需要!