Java OnClickListener用于从listview行启动webview

Java OnClickListener用于从listview行启动webview,java,android,Java,Android,搜索api将返回一些元数据以及URL“eventURL”。我将数据放在listview中,每一行都包含一些数据和一个唯一的URL。我希望当用户点击listview中的行时,该唯一的URL应该在webview中打开。我已经为它创建了一个WebViewActivity,我在实现onClickListener时遇到问题 main活动 public class MainActivity extends Activity { //private EditText m_search_text; priva

搜索api将返回一些元数据以及URL“eventURL”。我将数据放在listview中,每一行都包含一些数据和一个唯一的URL。我希望当用户点击listview中的行时,该唯一的URL应该在webview中打开。我已经为它创建了一个WebViewActivity,我在实现onClickListener时遇到问题

main活动

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" + "&m=meta:channel=" + activities + "&l="+ zip + "&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<String, Integer, String>
{

    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("\\<.*?\\>", ""));

            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;
    }
}}

谢谢

您需要使用McClickListener:

MainActivity implements OnItemClickListener {

onCreate() {
m_search_results.setOnItemClickListener(this);
采用以下方法:

onItemClick(AdapterView<?> parent, View view, int position, long id) {

url = JSON.getHowever(position);

//get the intent, load the url, and launch the activity

}
onItemClick(AdapterView父项、视图、int位置、长id){
url=JSON.getHowever(位置);
//获取意图、加载url并启动活动
}

您还需要在WebViewActivity中处理意图,但这是问题旁边的内容

谢谢您的快速回复。
onItemClick(AdapterView<?> parent, View view, int position, long id) {

url = JSON.getHowever(position);

//get the intent, load the url, and launch the activity

}