获取Android中Dialogfragment的引用

时间:2014-08-07 17:32:26

标签: android android-dialogfragment

场景:我有一个对话框片段。点击一个图像,它启动一个活动,在asynctask中执行该过程。当我返回结果时,活动结束并返回到对话框片段。返回时必须更改图像。

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

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

2 个答案:

答案 0 :(得分:0)

如果我理解正确,请尝试在 AsyncTask onPostExecute()中使用invalidate()方法进行ImageView。
如果你在启动的 Activity 中启动 AsyncTask ,就像我想的那样,你可以在Dialog Fragment中启动自定义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();
}


最诚挚的问候。

答案 1 :(得分:0)

我建议如下:

  1. 使用对话框中的startActivityForResult启动活动(B)。
  2. 覆盖原始活动中的OnActivityResult(A,承载对话框的活动)。
  3. 在其中调用super.OnAcitivityResult,以便对话框可以接收回叫。
  4. 您的dialogfragment应覆盖OnActivityResult并根据结果更改图像。
  5. 需要您的代码才能看到您实际要做的事情。