以编程方式获取View的子项

时间:2014-06-06 09:00:58

标签: android android-layout android-linearlayout textview

在我的xml文件中,我有5个linearLayout容器,其中包含每个容器的textview。现在我以编程方式实现了拖放功能,这就是我将它与每个布局相符的方式:

LinearLayout place1;
place1.setOnDragListener(new MyDragListener());

但是在这个Listener中,它将布局转换为视图:

class MyDragListener implements OnDragListener {
    @Override
    public boolean onDrag(View v, DragEvent event) {
    //...

当我将textview拖放到另一个布局容器时,我可以获取此textview的视图对象以及我正在删除它的布局的视图对象。但是,我还需要获取textview的视图对象,其中包含我正在删除其他textview的布局。

为此,我尝试在布局视图上使用getChildAt(),但似乎此方法不适用于视图,仅适用于像LinearLayout这样的对象。

那么,我怎么能得到textview的视图对象呢?不得不说我需要这样做,因为当我做拖拽时,我需要展位textview的对象在它们之间交换文本,但如果有人提出更好的方法,我也会很感激建议。

1 个答案:

答案 0 :(得分:1)

您可以使用ViewGroup并访问布局中的所有视图。

 LayoutInflater inflater = LayoutInflater.from(context);
 ViewGroup viewgroup = (ViewGroup)inflater.inflate(R.layout.yourLayout, null);

然后您可以使用getChildAt(index)