2013-04-15 159 views
5

我想知道如果这是可能的设置文本:安卓:包括视图

在布局文件,我已经包括了一个观点:

<?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

是的,有可能,您可以参考该视图作为整体包括布局被复制到主布局文件。 – Analizer

+0

是的,正如Analizer所说,这是可能的..... –

+0

但包含的布局不是一个textview,包含的布局包含一个textview。这很重要吗? – Xander

回答

1

你可以做到这一点从代码一样的单一布局。例如

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

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

1

是的,可以的,您可以参考该视图,因为整个包含的布局被复制到主布局文件中。你可以使用它的ID作为allways参考textview,它会被发现

+0

你从代码或XML是什么意思? – Xander

+1

您只能在包含的布局中从xml进行设置,因此只能设置一次,并且在包含的每个布局中将其设置为相同的值,因此我建议您从代码中设置它。 – Analizer

+0

好的,你可以使用findViewById()还是必须使用includedView.findViewById()? – Xander