需要帮助使用 ((ImageView) findViewById.getView().(R.id.imageView1)).setImageBitmap(bmp);在一个片段中

我在片段活动中使用以下代码时遇到问题:

((ImageView) findViewById.getView().(R.id.imageView1)).setImageBitmap(bmp);

我试过使用:

((ImageView) this.getView().findViewById(R.id.imageView1)).setImageBitmap(bmp);

但这不起作用。应用程序崩溃

stack overflow Need help using ((ImageView) findViewById.getView().(R.id.imageView1)).setImageBitmap(bmp); in a fragment
原文答案

答案:

作者头像

如果它的 imageView1 在主 Activity 布局中,那么试试这个

 ImageView myImg=(ImageView)findViewById(R.id.imageView1);
    myImg.setImageBitmap(bmp);

如果不是那么

ImageView myImg=(ImageView)view.findViewById(R.id.imageView1);
    myImg.setImageBitmap(bmp);

视图可能与放置主布局内容相同或在膨胀之后,因此根据膨胀视图可能会变为线性布局或相对布局或视图。

作者头像

如果您在片段中,那么我建议您在为片段创建视图后使用 onCreateView 方法分配:

public View onCreateView(final LayoutInflater inflater, final ViewGroup container, final Bundle savedInstanceState) { final View rootView = inflater.inflate(R.layout.fragment_layout, container, false); Bitmap bmp;//<= retrieve/create your bitmap here ImageView image =((ImageView) rootView.findViewById(R.id.imageView1)); image.setImageBitmap(bmp); return rootView; }

希望有帮助。