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。