如何获取片段中兄弟视图的ID?

时间:2015-09-06 22:20:34

标签: android android-layout

当我点击一个视图时,我的点击处理程序被调用,我可以访问被点击的视图。有没有办法让我获得正确的兄弟视图的ID?单击的视图实际上是动态添加到线性布局的几个子视图之一:

<LinearLayout
    android:id="@+id/profile"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
    //Dynamically filled
 /LinearLayout

因此在运行时,LinearLayouts将嵌套在“profile”中。将单击其中一个LinearLayouts,并且我可以访问该视图。我想直接在它下面的视图,如下:

   <LinearLayout
    android:id="@+id/profile"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

        <TextView></TextView>
        <EditText></EditText>
   /LinearLayout>

当我可以访问被点击的TextView时,我想获取所述EditText的ID。

2 个答案:

答案 0 :(得分:0)

您必须在使用setId()方法创建edittext时在代码中设置edittext的id,然后在clicklistner中找到该id的edittext,以便您的edittext点击工作

答案 1 :(得分:0)

至少有几种方法可以做到这一点。

  1. 最简单的方法是获取TextView的父视图,并以这种方式查找EditText子项(替换所需的视图ID):
  2. EditText e = (EditText) ((LinearLayout) getParent()).findViewById(R.id.edittextid);

    1. 更复杂的方法是为父LinearLayout创建自定义视图,该视图通过id定位其子视图,然后将这些id传递给通过它实现的接口请求它的子项。家长应该打电话给孩子让他们知道自己要打电话。