2

我有 3 个嵌套布局,并且在访问其中的视图时遇到了困难。下面的主要 xml(A.xml) 包含一个 B 实例,其中包含多个 C.xml。C.xml中有3张图片

A.xml -> 这是主要的 xml

  <include
        android:id="@+id/b"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        layout="@layout/B" />

B.xml -> 这是第 2 级

 <include
        android:id="@+id/c1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        layout="@layout/C" />

    <include
        android:id="@+id/c2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        layout="@layout/C" />

    <include
        android:id="@+id/c3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        layout="@layout/C" />

C.xml - 这是第 3 级

<ImageView
        android:id="@+id/a1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/img1" />

    <ImageView
        android:id="@+id/a2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/img2" />

    <ImageView
        android:id="@+id/a3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/img3" />

所以在这里,main 包括 B 上的一个实例,该实例又包括 C 的多个实例。所以如果我想从 B 访问 id C3 并且在 C3 中我想让 a2 可见,我应该怎么做。

4

2 回答 2

3

You can Access all views by getting the reference of each views and sub-views as shown below as your example.

        View view = findViewById(R.id.b);
        view = view.findViewById(R.id.c1);
        ((TextView)view.findViewById(R.id.txt1)).setText("Got the First one");

        view = findViewById(R.id.b);
        view = view.findViewById(R.id.c1);
        ((TextView)view.findViewById(R.id.txt2)).setText("Got the Second one");

        view = findViewById(R.id.b);
        view = view.findViewById(R.id.c2);
        ((TextView)view.findViewById(R.id.txt1)).setText("Got the forth one");

similarly you can access other elements also.

于 2012-04-30T12:03:48.900 回答
0

我有一个类似于问题中描述的嵌套布局结构,并且在从我的主视图中获取嵌套一两个级别的视图时没有遇到问题。我将我的 Activity 的内容视图设置为a.xml,然后直接从我的 Activity 中找到我需要的视图(无需从二级视图中找到三级视图),如下所示:

@Override
public void onCreate(Bundle savedInstanceState)
{
  super.onCreate(savedInstanceState);
  setContentView(R.layout.a);
  ImageView a1 = (ImageView)findViewById(R.id.a1);
}
于 2012-07-28T14:27:30.770 回答