在 Android 中获取 Dialogfragment 的引用

问题描述 投票:0回答:2

场景:我有一个对话框片段。单击图像时,它会启动一个活动,该活动在异步任务中执行该过程。当我返回结果时,活动完成并返回到对话框片段。返回时,必须更改图像。

问题:图像保持不变,只有当您关闭对话框片段并重新打开它时,它才会改变。

抱歉,我没有发布代码,只是想要一些有关如何从活动异步任务更新视图的建议。

android android-dialogfragment
2个回答
0
投票

我建议如下:

  1. 使用对话框中的 startActivityForResult 启动活动 (B)。
  2. 在原始活动(A,承载对话框的活动)中重写 OnActivityResult。
  3. 在其中调用super.OnAcitivityResult,让dialog能够收到回调。
  4. 您的对话框片段应覆盖 OnActivityResult 并根据结果更改图像。

需要您的代码来查看您实际想要做什么。


0
投票

如果我理解正确,请尝试在 invalidate()

onPostExecute() 中对 ImageView 使用
AsyncTask
 方法。

如果您在启动的

AsyncTask
中启动
Activity
,正如我想的那样,您可以在对话框片段中启动自定义活动,并将
ImageView
指针传递给构造函数。像这样的东西:

public class AsyncTaskActivity extends Activity{

    private ImageView yourImage;

    public AsyncTaskActivity(ImageView yourImage){
           this.yourImage = yourImage;
    }
    ....
    //your AsyncTask should be like this
    new AsyncTask<Void, Void, Void>(){
        //here your backround process
        ...
        //here we invalidate ImageView
        @Override
        protected void onPostExecute(Void result) {
                  //update image Bitmap or something else
                  ...
                  yourImage.invalidate();
        }   
    }.execute();
}
© www.soinside.com 2019 - 2024. All rights reserved.