动态添加删除控件,用setTag()无法解决,求方法,该怎么解决

动态添加删除控件,用setTag()无法解决,求方法
我的程序界面是这样的:(不使用xml,纯Java代码)

树形

LinearLayout1
!--CheckBox1
!--CheckBox2
!--LinearLayout2
  !--CheckBox3
  !--CheckBox4
  !--CheckBox5

类似这样的结构.

问题:

  1.当我点击CheckBox4的时候怎么能得到它的index?在它的事件里怎么写?
  这个index用于 Layout.addView(View child, int index)

  刚才有前辈说用setTag()来标记,这个方法在简单情况下能行通,但是到复杂情况下就会出错.
  比如CheckBox1和CheckBox2之间加个layout,CheckBox3和CheckBox4之间再加个layout,这个都是在点击CheckBox后动态加载的,假设我要删除CheckBox3和CheckBox4之间的layout,用index肯定要出错的.


求前辈指教下,有没有直接能取到我点击的CheckBox的index,不管前面有没有动态添加过别的控件或布局.

removeViewAt(index)都能依据index来删除,为什么就不能拿到index呢?这个index应该是系统自动管理的.急求方法.感激不尽.

------解决方案--------------------
Layout.addView(View child, int index)
这个index是用来索引LinearLayout1下所有children的,所以LinearLayout2也占用一个位置,而不是所有checkbox。
你自己设置的index必须要进行管理的,有增删操作都要对index做更新。