Android:设置包含视图的文本

时间:2013-04-15 09:40:25

标签: android xml android-layout include

我想知道这是否可行:

在布局文件中,我包含了一个视图:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <include 
        layout="@layout/includedView" />

</LinearLayout>

includedView包含:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="48dip" >

    <ImageView
    ...
    />

    <TextView
    ....
    />

</RelativeLayout>

我的问题是:是否可以从包含视图的布局(因此从布局1)为includedView内的textview设置文本?

希望我的问题很清楚,如果没有,那么请问。

提前致谢!

3 个答案:

答案 0 :(得分:1)

是的,有可能,您可以参考该视图,因为整个包含的布局已复制到主布局文件中。你可以使用它的id来引用textview,它将被找到

答案 1 :(得分:1)

您可以通过代码与单一布局相同来实现。例如

setContentView(R.layout.first_layout);
TextView tv = (TextView)findViewById(R.id.textview_of_second_layout); // just like single layout
tv.setText(something);

但我认为不可能从第一个布局xml中做到这一点,因为没有可见的方法。 (如果我错了,有人会纠正我)

答案 2 :(得分:0)

如果要在包含的视图/布局中设置某些内容(例如在导航抽屉中,如果要设置文本(配置文件名称,电子邮件等),请按以下步骤进行操作。

NavigationView mNavigationView = findViewById(R.id.nav_view);
View headerView = mNavigationView.getHeaderView(0);

TextView profilename = headerView.findViewById(R.id.profile_name);
TextView emailtxt = headerView.findViewById(R.id.email_txt);