2016-09-05 15 views
0

我正在创建一个jsonobject并将其发送到我之前的活动,该活动解析它并显示包含图像和文本视图组合的子线性布局。这些子线性布局使用添加视图添加到父线性布局中。使用新元素刷新线性布局onactivityresult

jsonobject根据用户输入而改变,但不幸的是,当我给它一个新的jsonobject onactivityResult方法时,linearlayout不会刷新,而是linearlayout保存它的前一个包含子视图的状态。

有没有办法确保linearlayout刷新新的对象细节eactivime onactivityresult被称为?

+0

没有代码是很难调试!但你可以尝试调用invalidateLayout() – dex

回答

0

首先,请确保在添加一些新内容之前删除旧数据。如果您已经这样做,请尝试使用invalidate()。

的Android文档: https://developer.android.com/reference/android/view/View.html#invalidate()

+0

我们如何在添加新数据之前删除旧数据?我只使用addview函数并做无效,但它不会工作。 – user3520457

+0

您可以使用removeAllViews方法来执行此操作。 https://developer.android.com/reference/android/view/ViewGroup.html#removeAllViews() – ansorod

0
  1. 在同一活动可以使用的AsyncTask和数据被加载之后再调用说update_data_function(){用于更新值}中onPostExecute功能。

    new AsyncTask<Void, Void, Void>() { 
    
    @Override 
    protected Void doInBackground(Void... voids) { 
    //download data 
    return null; 
    } 
        protected void onPostExecute(Long result) { 
    update_data_function(result); 
        } 
    }.execute(); 
    
  2. 您可以使用在被加载数据的第二次活动自定义接口,但实现你的主要活动要显示的数据和数据传递到主活动update_data_function()这个接口。

    public class SecondActivity{ 
    
        public interface OnDataPass { 
        public void onDataPass(String data); 
        } 
    
    public class FirstActivity{ 
        //implement onDataPass here to get data and call update_data_function()} 
    
+0

不知道这将如何刷新视图。 – user3520457