我目前有一个名为PlayActivity的FragmentActivity。 PlayActivity包含5个子片段。在PlayActivity的onStart()方法中,我尝试使用findViewById(R.id.avatarView)在子片段之一的内部引用ImageView,但是它变为null。
PlayActivity中的代码:
public void updateAvatar(Bitmap avatar)
{
ImageView avatarViewer = (ImageView) findViewById(R.id.avatarView);
avatarViewer.setImageBitmap(avatar);
}
子片段的XML:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".PlayerActivity" >
<ImageView
android:id="@+id/avatarView"
android:layout_width="90dp"
android:layout_height="90dp"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="34dp"
android:layout_marginTop="62dp"
android:src="@drawable/energy_icon" />
最佳答案
您不能从活动中直接访问片段视图的元素。只有相关的片段可以访问其自己的视觉元素。
在片段中创建一个采用Bitmap
参数的公共方法,并将位图设置为适当的ImageView
。然后从您的活动中调用此方法,并将位图传递给它。