0

我正在使用图像+文本制作自定义列表视图,这是我的代码:

listDoctor.java

public void cek(){

           String url_select = "http://10.0.2.2/BloodGlucose/selectDoctor.php";

           HttpClient httpClient = new DefaultHttpClient();
           HttpPost httpPost = new HttpPost(url_select);

           //parameter
           ArrayList<NameValuePair> param = new ArrayList<NameValuePair>();

           try {
              //add parameter
               httpPost.setEntity(new UrlEncodedFormEntity(param));

             HttpResponse httpRespose = httpClient.execute(httpPost);
             HttpEntity httpEntity = httpRespose.getEntity();

             //read content
             InputStream in = httpEntity.getContent();
             BufferedReader read = new BufferedReader(new InputStreamReader(in));

             String content = "";
             String line = "";

             while((line = read.readLine())!=null){
                content += line;
             }

             Log.d("ADBUG", "content: "+content);


             //json
             if(!content.equals("null")){




                try {
                   JSONArray jArr = new JSONArray(content);
                   for(int i=0;i<jArr.length();i++){
                      JSONObject jObj = jArr.getJSONObject(i);
                      String id = jObj.getString("_id");
                      String name = jObj.getString("name");
                      String dateofbirth = jObj.getString("dateofbirth");
                      String phone = jObj.getString("telp");
                      String address = jObj.getString("clinicaddress");
                      String file = jObj.getString("file");
                      String uname = jObj.getString("username_doctor");
                      String lulusan = jObj.getString("lulusan");
                      String clinicname = jObj.getString("clinicname");

                      names.add(name);
                      date.add(dateofbirth);
                      telp.add(phone);      
                      clinic.add(address);
                      usernamedoctor.add(uname);
                      namaklinik.add(clinicname);
                      graduate.add(lulusan);



                   }

                   setListAdapter(new DoctorArrayAdapter(this, names));


                } catch (JSONException e) {
                   // TODO Auto-generated catch block
                   e.printStackTrace();
                }

             }else{
                Toast.makeText(this, "Error", Toast.LENGTH_LONG).show();
             }

          } catch (ClientProtocolException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
          } catch (IOException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
          }
       }

DoctorArrayAddapter.java

package research.android.bloodglucose;


import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.util.ArrayList;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import research.android.bloodglucose.R;

import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.drawable.Drawable;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

public class DoctorArrayAdapter extends ArrayAdapter<String> {
    private final Context context;
    private final ArrayList<String> values;
    private ImageView imageView;

    public DoctorArrayAdapter(Context context, ArrayList<String> names) {
        super(context, R.layout.list_row, names);
        this.context = context;
        this.values = names;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        LayoutInflater inflater = (LayoutInflater) context
            .getSystemService(Context.LAYOUT_INFLATER_SERVICE);

        View rowView = inflater.inflate(R.layout.list_row, parent, false);
        TextView textView = (TextView) rowView.findViewById(R.id.DoctorName);
        ImageView imageView = (ImageView) rowView.findViewById(R.id.list_image);
        textView.setText(values.get(position));

        // Change icon based on name
        String s = values.get(position);

        System.out.println(s);

        /*if (s.equals("WindowsMobile")) {
            imageView.setImageResource(R.drawable.windowsmobile_logo);
        } else if (s.equals("iOS")) {
            imageView.setImageResource(R.drawable.ios_logo);
        } else if (s.equals("Blackberry")) {
            imageView.setImageResource(R.drawable.blackberry_logo);
        } else {
            imageView.setImageResource(R.drawable.android_logo);
        }*/
 cek();
        return rowView;
    }

    public void cek(){

           String url_select = "http://10.0.2.2/BloodGlucose/selectDoctor.php";

           HttpClient httpClient = new DefaultHttpClient();
           HttpPost httpPost = new HttpPost(url_select);

           //parameter
           ArrayList<NameValuePair> param = new ArrayList<NameValuePair>();

           try {
              //add parameter
               httpPost.setEntity(new UrlEncodedFormEntity(param));

             HttpResponse httpRespose = httpClient.execute(httpPost);
             HttpEntity httpEntity = httpRespose.getEntity();

             //read content
             InputStream in = httpEntity.getContent();
             BufferedReader read = new BufferedReader(new InputStreamReader(in));

             String content = "";
             String line = "";

             while((line = read.readLine())!=null){
                content += line;
             }

             Log.d("ADBUG", "content: "+content);


             //json
             if(!content.equals("null")){




                try {
                   JSONArray jArr = new JSONArray(content);
                   for(int i=0;i<jArr.length();i++){
                      JSONObject jObj = jArr.getJSONObject(i);
                      String id = jObj.getString("_id");
                      String name = jObj.getString("name");
                      String dateofbirth = jObj.getString("dateofbirth");
                      String phone = jObj.getString("telp");
                      String address = jObj.getString("clinicaddress");
                      String file = jObj.getString("file");
                      String uname = jObj.getString("username_doctor");
                      String lulusan = jObj.getString("lulusan");
                      String clinicname = jObj.getString("clinicname");


                      String ed = "http://10.0.2.2/BloodGlucose/img/"+uname+".jpg";
                      URL aURL = new URL(ed); 
                      final URLConnection conn = aURL.openConnection(); 
                      conn.connect(); 
                      final BufferedInputStream bis = new BufferedInputStream( 
                              conn.getInputStream()); 
                      final Bitmap bm = BitmapFactory.decodeStream(bis); 
                      bis.close(); 


                      imageView.setImageBitmap(bm);


                   }



                } catch (JSONException e) {
                   // TODO Auto-generated catch block
                   e.printStackTrace();
                }

             }else{

             }

          } catch (ClientProtocolException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
          } catch (IOException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();
          }
       }

    private Drawable ImageOperations(Context ctx, String url, String saveFilename) {
          try {
           URL imageUrl = new URL(url);
           InputStream is = (InputStream) imageUrl.getContent();
           Drawable d = Drawable.createFromStream(is, "src");
           return d;
          } catch (MalformedURLException e) {
           e.printStackTrace();
           return null;
          } catch (IOException e) {
           e.printStackTrace();
           return null;
          }
         }




}

问题是,当我运行模拟器时,图像没有显示,它只显示文本,任何人都可以帮助我吗?谢谢你

4

1 回答 1

0

试试这种类型,我没有使用 JSON,而是通过 URL

     ImageView image = (ImageView) row.findViewById(R.id.ThumbImageView);
                if (image != null) {
                    Bitmap bitimage = null;
                    BitmapFactory.Options options = new BitmapFactory.Options();
                    options.inSampleSize = 1;
                    try {
                      //bitimage = BitmapFactory.decodeStream((InputStream) new URL(data.getThumbnail().toString().trim().toString()).getContent(), null, options);
                      bitimage = BitmapFactory.decodeStream((InputStream) new URL(ed).getContent(), null, options);
                        image.setImageBitmap(bitimage);
                    } catch (MalformedURLException e) {
                        e.printStackTrace();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }

                }
于 2012-09-10T09:52:05.817 回答