我目前有一个名为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。然后从您的活动中调用此方法,并将位图传递给它。

09-27 12:48