Note that there are some explanatory texts on larger screens.

plurals
  1. POWebview is blank or loading same page for different urls
    text
    copied!<p>A search api is returning me some meta data i.e a url "eventURL" and trackbackurl i.e "trackBack". I am placing the data in the listview, each row containing some data and a unique url and trackback url.When user taps on the row in the listview, a alert dialog is displayed presenting user 2 options. Clicking on option 1 should launch trackback url in a webview while clicking on second opion should launch eventURL in a webview.I have created a WebViewActivity for it,Problem is that my webview is always blank.</p> <p><strong>Main Activity</strong></p> <pre><code>package my.stayactive.plan; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import my.stayactive.plan.ActiveHelper.ApiException; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import android.app.Activity; import android.app.AlertDialog; import android.app.ProgressDialog; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.net.Uri; import android.os.AsyncTask; import android.os.Bundle; import android.util.Log; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.view.inputmethod.InputMethodManager; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.BaseAdapter; import android.widget.Button; import android.widget.EditText; import android.widget.ListView; import android.widget.Spinner; import android.widget.TextView; import android.widget.Toast; public class StayActiveActivity extends Activity implements OnItemClickListener { //private EditText m_search_text; protected EditText m_zip; private ListView m_search_results; private Button m_search_btn; private JSONArray m_results; private LayoutInflater m_inflater; private InputMethodManager m_ctrl; private Spinner m_radius; private Spinner m_activity_selector; public static int radius = 0; public static String activities; public String url; public String trackBack; public static String assetId; static final private int EXIT_ID = Menu.FIRST; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); // m_search_text = (EditText) findViewById(R.id.search_text); m_zip = (EditText) findViewById(R.id.zip); m_search_btn = (Button) findViewById(R.id.search_button); // m_searchm_results = (ListView) findViewById(R.id.lview); m_search_btn .setOnClickListener(go_handler); m_ctrl = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); m_inflater = LayoutInflater.from(this); addListenerOnSpinnerItemSelection(); addListenerOnSpinner1ItemSelection(); m_search_results = (ListView)findViewById(R.id.lview); m_search_results.setOnItemClickListener(this); } public void addListenerOnSpinnerItemSelection() { m_radius = (Spinner) findViewById(R.id.spinner); m_radius.setOnItemSelectedListener(new CustomOnItemSelectedListener()); } public void addListenerOnSpinner1ItemSelection(){ m_activity_selector = (Spinner) findViewById(R.id.spinner1); m_activity_selector.setOnItemSelectedListener(new ActivitySelectedListener()); } @Override public boolean onCreateOptionsMenu(Menu menu){ super.onCreateOptionsMenu(menu); menu.add(0, EXIT_ID, 0, R.string.exit); return true; } @Override public boolean onOptionsItemSelected (MenuItem item){ switch (item.getItemId()){ case EXIT_ID: finish(); return true; } return super.onOptionsItemSelected(item); } OnClickListener go_handler = new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub //m_ctrl.hideSoftInputFromWindow(m_search_text.getWindowToken(), 0); m_ctrl.hideSoftInputFromWindow(m_zip.getWindowToken(), 0); //String searchText = Uri.encode(m_search_text.getText().toString()); String zip = Uri.encode(m_zip.getText().toString()); new SearchTask().execute("?k=Fall+Classic" + "&amp;m=meta:channel=" + activities + "&amp;l="+ zip + "&amp;r=" + radius); // Show a toast showing the search text Toast.makeText(getApplicationContext(), getString(R.string.search_msg) + " " + activities, Toast.LENGTH_LONG).show(); } }; private class SearchTask extends AsyncTask&lt;String, Integer, String&gt; { ProgressDialog dialog; @Override protected void onPreExecute() { dialog = ProgressDialog.show(StayActiveActivity.this,"","Please Wait..."); super.onPreExecute(); } @Override protected String doInBackground(String... params) { try { String result = ActiveHelper.download(params [0]); return result; } catch (ApiException e) { e.printStackTrace(); Log.e("alatta", "Problem making search request"); } return ""; } @Override protected void onPostExecute(String result) { dialog.hide(); try { JSONObject obj = new JSONObject(result); m_results = obj.getJSONArray("_results"); if (m_results == null || m_results.length() == 0) { Toast.makeText(getApplicationContext(), "No Results found for " + activities, Toast.LENGTH_LONG).show(); } else m_search_results.setAdapter(new JSONAdapter(getApplicationContext())); } catch (JSONException e) { e.printStackTrace(); } } } private class JSONAdapter extends BaseAdapter { public JSONAdapter(Context c){ } public int getCount() { return m_results.length(); } public Object getItem(int arg0){ return null; } public long getItemId(int pos){ return pos; } public View getView(int pos, View convertView, ViewGroup parent) { View tv; TextView t; if (convertView == null) tv = m_inflater.inflate (R.layout.item, parent, false); else tv = convertView; try { /* For each entry in the ListView, we need to populate * its text and timestamp */ t = (TextView) tv.findViewById(R.id.text); JSONObject obj = m_results.getJSONObject(pos); t.setText (obj.getString("title").replaceAll("&lt;/?(?i:&lt;|&gt;|...|&amp;quot|&amp;amp|;|)(.|\n)*?&gt;", "")); //("\\&lt;.*?\\&gt;", "")) t = (TextView) tv.findViewById(R.id.created_at); JSONObject meta = obj.getJSONObject("meta"); // url = meta.getString("eventURL"); trackBack = obj.getString("url"); assetId = meta.getString("assetTypeId"); //String eventDate = meta.getString("startDate"); Calendar currentDate = Calendar.getInstance(); long dateNow = currentDate.getTimeInMillis(); String eventDate = meta.getString("startDate"); String endDate = meta.getString("endDate"); SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); Date date = null; Date date2 = null; try { date = formatter.parse(eventDate); date2 = formatter.parse(endDate); } catch (java.text.ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); } long modifiedDate= date.getTime(); long modifiedEndDate = date2.getTime(); if ( Long.valueOf(dateNow).compareTo(Long.valueOf(modifiedDate)) &gt; 0 || Long.valueOf(dateNow).compareTo(Long.valueOf(modifiedEndDate)) &gt; 0) { t.setText ("Was:" + "\t"+eventDate+"\n"+"Location:" +"\t" +meta.getString("location")+"\n" + meta.getString("eventURL") +"\n"+ obj.getString("url")); } else { t.setText ("When:" + "\t"+eventDate+"\n"+"Location:" +"\t" +meta.getString("location")+"\n"+ meta.getString("eventURL") +"\n"+ obj.getString("url")); } } catch (JSONException e) { Log.e("alatta", e.getMessage()); } return tv; } } @Override public void onItemClick(AdapterView&lt;?&gt; parent, View view, int position, long id) { /*try { JSONObject obj = m_results.getJSONObject(position); JSONObject meta = obj.getJSONObject("meta"); url = meta.getString("eventURL"); //Intent intent = new Intent (StayActiveActivity.this, WebViewActivity.class); //StayActiveActivity.this.startActivity(intent); } catch (JSONException e) { Log.e("alatta",e.getMessage()); }*/ // TODO Auto-generated method stub final CharSequence[] items = {"Register", "Additional Information"}; AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle("Please Select an Option"); builder.setItems(items, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub if (which == 0){ Intent intent1 = new Intent (StayActiveActivity.this, ReviewActivity.class); StayActiveActivity.this.startActivity(intent1); } else if ( which == 1){ Intent intent = new Intent (StayActiveActivity.this, WebViewActivity.class); StayActiveActivity.this.startActivity(intent); } } }); AlertDialog alert = builder.create(); alert.show(); }} </code></pre> <p><strong>WebViewActivity</strong></p> <pre><code>package my.stayactive.plan; import android.os.Bundle; import android.view.KeyEvent; import android.webkit.WebSettings; import android.webkit.WebView; import android.webkit.WebViewClient; public class WebViewActivity extends StayActiveActivity { private WebView webView; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.webview); webView = (WebView) findViewById(R.id.webView); WebSettings setting = webView.getSettings(); setting.setJavaScriptEnabled(true); if (url != null &amp;&amp; url.length()&gt;0) { webView.loadUrl(url); } } } </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload