Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 设置包含视图的文本_Android_Xml_Android Layout_Include - Fatal编程技术网

Android 设置包含视图的文本

Android 设置包含视图的文本,android,xml,android-layout,include,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:orie

我想知道这是否可能:

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

<?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的文本


希望我的问题是清楚的,如果没有,请提问。

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

您可以从与单个布局相同的代码中执行此操作。比如说

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

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

如果您想在包含的视图/布局中设置某些内容,例如在导航抽屉中,如果您想设置文本(配置文件名、电子邮件等),请按以下方式执行

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);

是的,这是可能的,当整个包含的布局被复制到主布局文件中时,您可以引用该视图。是的,正如Analizer所说,这是可能的……但是包含的布局不是textview,包含的布局包含textview。这有关系吗?是的,你可以。你想从代码中设置文本吗?或者从xml?您只能在包含的布局中从xml进行设置,因此只能设置一次,并且在包含的每个布局中都将设置为相同的值,因此我建议您从代码进行设置。好的,您可以只使用findViewById()还是必须使用includedView.findViewById()?您可以在代码中执行所有操作,因为RelativeLayout没有包含,而是复制到主布局中,因此您可以简单地使用findViewById。