Volley listview如何实现setOnitemClickLitener

时间:2016-04-13 06:22:20

标签: android listview android-volley

我写了一个应用程序来获取服务器的出租车列表,这是我的代码

public void getTaxiList(){

        StringRequest strReq = new StringRequest(Request.Method.POST,
                Config.URL_GET_TAXI, new Response.Listener<String>() {

            @Override
            public void onResponse(String response) {
                Log.d(TAG, response.toString());
                dialog.dismiss();

                try{
                    JSONObject obj = new JSONObject(response);
                    JSONArray arr = obj.getJSONArray("taxi_list");

                    for (int i = 0; i < arr.length(); i++) {
                        JSONObject c = arr.getJSONObject(i);
                        Taxi taxi = new Taxi();
                        taxi.setTaxiName(c.getString("taxi_name"));
                        taxi.setThumbnailUrl(c.getString("image"));
                        taxiList.add(taxi);
                        Log.d(TAG, taxiList.toString());
                    }
                }catch (JSONException e) {
                    // error message
                }
                adapter.notifyDataSetChanged();
            }
        }, new Response.ErrorListener() {

            @Override
            public void onErrorResponse(VolleyError error) {
                Log.e(TAG, "Error: " + error.getMessage());
            }
        }){

            @Override
            protected Map<String, String> getParams() {
                Map<String, String> params = new HashMap<String, String>();
                params.put("from", from_btn);
                params.put("to", to_btn);

                Log.e(TAG, "Posting params: " + params.toString());
                return params;
            }
        };

        // Adding request to request queue
        MyApplication.getInstance().addToRequestQueue(strReq);
    }

我已经在listview上设置了数据,我希望用户在选择项目后转到另一个活动,例如book_activity但是对于这个问题,我只想为用户选择的每个项目显示祝酒词,怎么做我做到了吗?

2 个答案:

答案 0 :(得分:0)

如果有帮助的话,试试这个:

// Here is your list view
ListView taxis = (ListView)findViewById(R.id.listView);

// You set adapter here with the list of taxis you have received from server
    taxis.setAdapter(new ArrayAdapter<Taxi>(
            this,R.layout.list_of_taxi_numbers,R.id.list_content, TaxiNumbersList));

// On click listener
    taxiList.setOnItemClickListener(new OnItemClickListener() {
        public void onItemClick(AdapterView<?> parent, View view,
            int position, long id) {
            TextView textView = (TextView) view.findViewById(R.id.tv_taxi_number); //
            String taxiNumber = textView.getText().toString(); 
            Toast.makeText(getActivity(), "Choosen Taxi Number Is = : " +taxiNumber, 
            Toast.LENGTH_LONG).show();
    }});

请做出任何必要的修改,至少它会让你大致了解如何获得它。

答案 1 :(得分:0)

你可以试试这个:

  1. taxiList.setOnItemClickListener(onItemClickListener);
  2. 如果您使用自定义适配器,请将OnClickListener添加到视图容器。