我将数据(url)从json文件加载到WebView(使用gson)。当我通过静态变量(WebView)从不同的Activity加载数据时,我得到了我的JSON文件的第12个url条目。当我将数据加载到我的Activity的内部WebView时,我得到了它应该的第一个URL。
OtherActivity.mWebView1.loadUrl(JsonData.getUrl()); --> here i get the 12th url
mWebView2.loadUrl(JsonData.getUrl()); --> here i get the 1st url
他们都使用相同的方法从JSON文件(gson)加载数据:
@SerializedName("url")
@Expose
private String url;
public String getUrl() {return url;}
public void setUrl(String url) {
this.url = url;
}
这是我的LoadJsonFromAsset类:
public class SwipeUtils {
public static List<AdInfo> loadProfiles(Context context){
try{
GsonBuilder builder = new GsonBuilder();
Gson gson = builder.create();
JSONArray array = new JSONArray(loadJSONFromAsset(context, "adInfo.json"));
List<AdInfo> adInfoList = new ArrayList<>();
adInfoList.indexOf("");
for(int i=0;i<array.length();i++){
AdInfo adInfo = gson.fromJson(array.getString(i), AdInfo.class);
adInfoList.add(adInfo);
Log.d("test",adInfo.toString());
}
return adInfoList;
}catch (Exception e){
e.printStackTrace();
return null;
}
}
private static String loadJSONFromAsset(Context context, String jsonFileName) {
String json = null;
InputStream is=null;
try {
AssetManager manager = context.getAssets();
Log.d(TAG,"path "+jsonFileName);
is = manager.open(jsonFileName);
int size = is.available();
byte[] buffer = new byte[size];
is.read(buffer);
is.close();
json = new String(buffer, "UTF-8");
} catch (IOException ex) {
ex.printStackTrace();
return null;
}
return json;
}
}
答案 0 :(得分:0)
问题是我设置loadUrl()的方法。它是在一个循环中,在loadUrl()工作的时候它已经在第12个条目。