Note that there are some explanatory texts on larger screens.

plurals
  1. POOnClickListener for launching webview from a listview row
    primarykey
    data
    text
    <p>A search api is returning me some meta data along with a URL "eventURL". I am placing the data in the listview, each row containing some data and a unique URL.I want when the user taps on the row in the listview,that unique URL should open in a webview.I have created a WebViewActivity for it,I am having issue with implementing the onClickListener.</p> <p><strong>MainActivity</strong> </p> <pre><code>public class MainActivity extends Activity { //private EditText m_search_text; private 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; 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_search_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); } 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_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(MainActivity.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;.*?\\&gt;", "")); t = (TextView) tv.findViewById(R.id.created_at); JSONObject meta = obj.getJSONObject("meta"); t.setText ("When:" + "\t"+meta.getString("startDate")+"\n"+"Location:" +"\t" +meta.getString("location")+"\n" +"More Info:"+"\t" +meta.getString("eventURL")+"\n"); } catch (JSONException e) { Log.e("alatta", e.getMessage()); } return tv; } }} </code></pre> <p><strong>WebViewActivity</strong></p> <p>public class WebViewActivity extends MainActivity {</p> <pre><code> private WebView webView; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.webview); webView = (WebView) findViewById(R.id.webView); webView.getSettings().setJavaScriptEnabled(true); webView.loadUrl("url"); }} </code></pre> <p>Thanks. </p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

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