2015-12-15 40 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删除,但无效工作 –