1
Good morning!
I have a Webview, where I receive a JSON and I intend to build Webview according to the data received. In that part of the code html += "<h1>" + nmTitle + "</h1>";
i put the variable that receives the JSON content in that part nmTitle = object.optString("nmTitle");
, that is above in the code, inside the Handler that receives the JSON.
However, instead of receiving the content assigned, my Webview displays the title as null
, apparently, it runs Webview first and then receives JSON. How to change this so it assigns content and then sends it to HTML?
public class InfoFragment extends Activity {
private AbstractNetworkHandler handler;
String nmTitle;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.fragment_activities_list2);
final WebView wv = new WebView(this);
final LinearLayout ll = (LinearLayout) findViewById(R.id.LinearLayout1);
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
wv.setLayoutParams(lp);
//this.handler = AbstractNetworkFactory.build(this, NetworkAction.WEB_VIEW);
this.handler = AbstractNetworkFactory.build(super.getBaseContext(), NetworkAction.WEB_VIEW);
Log.i("webview", "ate aki foi");
handler.get(23L, new HttpJsonObjectListener() {
@Override
public void onRequestCompleted(final JSONObject object, Integer httpStatus, CharSequence msg) {
// final JSONArray array = object.optJSONArray("searchResultsCollection");
nmTitle = object.optString("nmTitle");
final JSONArray array = object.optJSONArray("searchResultsCollection");
String s = String.valueOf(nmTitle);
// json.setText("My Awesome Text");
Log.i("webview", s);
Log.i("webview", "recebendo json");
}
}, new HttpFailListener() {
@Override
public void onRequestCompleted(Exception e, Integer httpStatus, CharSequence msg) {
Log.i("webview", "falhou ao obter json");
}
});
// (WebView) findViewById(R.id.webView1);
WebSettings ws = wv.getSettings();
ws.setJavaScriptEnabled(true);
ws.setSupportZoom(false);
// wv.loadUrl("http://www.thiengo.com.br/img/system/logo/thiengo-80-80.png");
String html = "<html>";
html += "<body>";
html += "<h1>" + nmTitle + "</h1>";
html += "<img src=\"http://www.exemplo.com.br/img/system/logo/-80-80.png\" style=\"float: left; display: block; margin-right: 10px;\" />";
for(int i = 0; i < 3; i++) {
html += "<h3 id=\"h3\" style=\"float: left;\">Texto auxiliar " + (i + 1) + "</h3>";
}
html += "<script type=\"text/javascript\">";
html += "document.getElementById('h3').style.color = '#ff0000';";
html += "</script></body></html>";
wv.loadData(html, "text/html", "UTF-8");
ll.addView(wv);
}
}
Thanks for the help, but I managed to resolve by simply putting the layout statements below Handler
– Morfina