我想知道这是否可行:
在布局文件中,我包含了一个视图:
<?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设置文本?
希望我的问题很清楚,如果没有,那么请问。
提前致谢!
答案 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);