2015-12-15 43 views
-1

我正在開發一個android應用程序,我在相對佈局上創建動態圖像箭頭。圖像是在相對佈局的點擊區域的x,y座標上創建的。以下是我正在使用的代碼。如何清除Android中的子佈局?

presciptionScreenArrowImg.setOnTouchListener(new View.OnTouchListener() { 
     @Override 
     public boolean onTouch(View v, MotionEvent event) { 
      if (canSelectMedianStatus == 2) { 
       if (event == simulationEvent) 
        return false; 
       int action = event.getAction(); 
       int x = (int) event.getX(); 
       int y = (int) event.getY(); 
       Log.e("onTouchListener", "User touch at X:" + x + " Y:" + y); 
       pointerArrow = new ImageView(getApplication()); 
       pointerArrow.setImageResource(R.drawable.pointer); 
       pointerArrow.setId(imageArrayTag); 
       imageArrayTag++; 
       RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(40, 40); 
       params.topMargin = y; 
       params.leftMargin = x; 
       pointerArrow.setLayoutParams(params); 
       presciptionScreenArrowImg.addView(pointerArrow); 
       long length = 0; 
       if (action == MotionEvent.ACTION_DOWN) { 
       //     click(v, x, y); 
       } 
      } 
      return false; 
     } 
    }); 

現在,我需要的是在按鈕上點擊最後一個圖片應該先刪除。基本上我需要一個撤消功能來刪除圖像作爲LIFO結構。

+0

所以你可以刪除索引你的索引將是你的佈局childcount-1 – Pavan

+0

@Pavan嘗試,但我的所有子視圖被刪除 –

回答

0

讓考慮presciptionScreenArrowImg是包含所有觀點的主要佈局,從以上的孩子獲取數和刪除最後一個視圖中刪除

int index=presciptionScreenArrowImg.getChildCount(); 
if(index>0) 
presciptionScreenArrowImg.removeViewAt(index-1); 

如果你有任何問題,讓我知道

+0

謝謝Pavan :) –

+0

歡迎,很高興知道它幫助 – Pavan

0

將視圖存儲在隊列中,並在添加新視圖時檢查隊列是否已滿。如果是,POP從隊列中查看,並呼籲presciptionScreenArrowImg.remove(poppedView);

+0

如何添加隊列請你解釋 –

+0

創建一個隊列 - 一種專爲其構建的集合後進先出法。然後在創建ImageView之後,將其添加到隊列中。有關隊列的詳細信息,請參閱http://developer.android.com/reference/java/util/Queue.html。 – yedidyak

+0

我已添加圖像數組中的視圖,並嘗試通過Id刪除,但無效工作 –