2014-10-05 80 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)); 
     } 
    } 
} 

我希望這就是您的需要!