在listadapter上显示更多信息

时间:2011-05-09 23:18:25

标签: android

我有这个代码

public class List extends ListActivity implements LocationListener {

    int ct_id;
    String[] ct_number = null;
    String[] ct_address = null;
    String[] ct_phone = null;
    String[] ct_fax = null;
    String[] ct_email = null;
    String[] ct_city = null;
    String[] ct_province = null;
    String[] ct_country = null;
    String[] ct_pcode = null;
    String[] ct_lat = null;
    String[] ct_long = null;
    String[] ct_distance = null;
    String[] ct_show = null;

    private LocationManager locationManager;

    @Override
    public void onCreate(Bundle bundle) {
        super.onCreate(bundle);
        //setContentView(R.layout.timslist);

        locationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
        locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 1000L, 500.0f, this);
        locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000L, 500.0f, this);
        Location location = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);

        double lat = location.getLatitude();
        double lng = location.getLongitude();

        String result = null;
        InputStream is = null;
        StringBuilder sb = null;
        //http post
        try{
            HttpClient httpclient = new DefaultHttpClient();
            HttpPost httppost = new HttpPost("http://www.somedomain.com/list.php?lat=" + lat + "&long=" + lng + "");
            //httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
            HttpResponse response = httpclient.execute(httppost);
            HttpEntity entity = response.getEntity();
            is = entity.getContent();
        }catch(Exception e){
            Log.e("log_tag", "Error in http connection"+e.toString());
        }
        //convert response to string
        try{
            BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8);
            sb = new StringBuilder();
            sb.append(reader.readLine() + "\n");
            String line="0";
            while ((line = reader.readLine()) != null) {
                sb.append(line + "\n");
            }
            is.close();
            result=sb.toString();
        }catch(Exception e){
            Log.e("log_tag", "Error converting result"+e.toString());
        }
        //paring data
        JSONArray jArray;
        try{
            jArray = new JSONArray(result);
            JSONObject json_data=null;
            ct_number=new String[jArray.length()];
            ct_address=new String[jArray.length()];
            ct_phone=new String[jArray.length()];
            ct_fax=new String[jArray.length()];
            ct_email=new String[jArray.length()];
            ct_city=new String[jArray.length()];
            ct_province=new String[jArray.length()];
            ct_country=new String[jArray.length()];
            ct_pcode=new String[jArray.length()];
            ct_lat=new String[jArray.length()];
            ct_long=new String[jArray.length()];
            ct_distance=new String[jArray.length()];
            for(int i=0;i<jArray.length();i++){
                json_data = jArray.getJSONObject(i);
                ct_id=json_data.getInt("location_id");
                ct_number[i]=json_data.getString("store_number");
                ct_address[i]=json_data.getString("store_address");
                ct_phone[i]=json_data.getString("store_phone");
                ct_fax[i]=json_data.getString("store_fax");
                ct_email[i]=json_data.getString("store_email");
                ct_city[i]=json_data.getString("store_city");
                ct_province[i]=json_data.getString("store_province");
                ct_country[i]=json_data.getString("store_country");
                ct_pcode[i]=json_data.getString("store_pcode");
                ct_lat[i]=json_data.getString("store_lat");
                ct_long[i]=json_data.getString("store_long");
                ct_distance[i]=json_data.getString("store_distance");
            }
        }
        catch(JSONException e1){
            Toast.makeText(getBaseContext(), "No Addresses Found" ,Toast.LENGTH_LONG).show();
        } catch (ParseException e1) {
            e1.printStackTrace();
        }

        setListAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,ct_address));
        ListView lv;
        lv = getListView();
        lv.setTextFilterEnabled(true);
        lv.setBackgroundColor(Color.rgb(83, 05, 14));
        lv.setCacheColorHint(Color.rgb(83, 05, 14));
        lv.setOnItemClickListener(new OnItemClickListener() {
            public void onItemClick(AdapterView<?> timslist, View view,
                    int position, long id) {

                Intent i1 = new Intent(getApplicationContext(), TimsListMore.class);

                i1.putExtra("ct_number_pass", ct_number[position]);
                i1.putExtra("ct_address_pass", ct_address[position]);
                i1.putExtra("ct_phone_pass", ct_phone[position]);
                i1.putExtra("ct_city_pass", ct_city[position]);
                i1.putExtra("ct_province_pass", ct_province[position]);
                i1.putExtra("ct_country_pass", ct_country[position]);
                i1.putExtra("ct_pcode_pass", ct_pcode[position]);
                i1.putExtra("ct_distance_pass", ct_distance[position]);

                startActivity(i1);

            }
        });
    }

现在我试图让列表显示

地址 city,prov

我能够让它在我的其他名单上工作,但我没有运气这个。我试过添加一个字符串如下

String[] ct_listinfo = (ct_address + "\n" + ct_city + ", " + ct_province);

并更改了

setListAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,ct_address));

setListAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,ct_listinfo));

但这对我缺少的东西没有帮助吗?

1 个答案:

答案 0 :(得分:1)

您正在尝试连接字符串数组而不是字符串。您需要单独连接每个字符串:

String[] ct_listinfo=new String[jArray.length()];

for(int i=0;i<jArray.length();i++){
    // all your code
    ct_listinfo[i] = new String (ct_address[i] + "\n" + ct_city[i] + ", " + ct_province[i]);
}