Ich versuche, Benutzerdetails in Recycling-Ansicht anzuzeigen.Herunterladen und Anzeigen von Bild von URL in JSON in Android
Wenn ich versuche, mein Bild anzuzeigen, funktioniert es nicht. Ich habe alle Möglichkeiten ausprobiert. Folgendes ist meine Adapterklasse.
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder>{
private LinkedList<HashMap<String, Object>> myDataSet;
Bitmap bitmap;
MyAdapter.ViewHolder viewHolder;
String image;
public MyAdapter(LinkedList<HashMap<String, Object>> values) {
myDataSet = values;
}
public class ViewHolder extends RecyclerView.ViewHolder{
public TextView userIdView;
public TextView jobTitleNameView;
public TextView employeeCodeView;
public ImageView imageView;
public ViewHolder(View itemView) {
super(itemView);
userIdView = (TextView)itemView.findViewById(R.id.userId);
jobTitleNameView = (TextView)itemView.findViewById(R.id.jobTitleName);
employeeCodeView = (TextView)itemView.findViewById(R.id.employeeCode);
}
}
@Override
public MyAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
LayoutInflater inflater = LayoutInflater.from(
parent.getContext());
View v = inflater.inflate(R.layout.activity_listview, parent, false);
viewHolder = new ViewHolder(v);
return viewHolder;
}
@Override
public void onBindViewHolder(ViewHolder holder, final int position) {
final HashMap<String, Object> userDetails = myDataSet.get(position);
String userId = (String) userDetails.get("userId");
String jobTitleName = (String) userDetails.get("jobTitleName");
String employeeCode = String.valueOf(userDetails.get("employeeCode"));
image = (String) userDetails.get("image");
ImageDownloader imageDownloader = new ImageDownloader();
imageDownloader.execute(viewHolder);
holder.userIdView.setText(userId);
holder.jobTitleNameView.setText(jobTitleName);
holder.employeeCodeView.setText(employeeCode);
}
@Override
public int getItemCount() {
return myDataSet.size();
}
Dies ist die in dieser Klasse für das Herunterladen von Bildern geschriebene Klasse.
private class ImageDownloader extends AsyncTask<ViewHolder,ViewHolder,ViewHolder>{
@Override
protected ViewHolder doInBackground(ViewHolder... params) {
viewHolder = params[0];
URL url = null;
try {
url = new URL(image);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setDoInput(true);
connection.connect();
InputStream inputStream = connection.getInputStream();
bitmap = BitmapFactory.decodeStream(inputStream);
} catch (IOException e) {
e.printStackTrace();
}
return viewHolder;
}
@Override
protected void onPostExecute(ViewHolder result){
viewHolder.imageView.setImageBitmap(bitmap);
}
}
}
jemand mir dabei helfen kann ....
Bitte das Protokoll unter
03-24 16:27:48.421 19806-20764/com.example.rini.listviewandroid W/System.err: java.net.ConnectException: failed to connect to www.scri8e.com/208.87.227.250 (port 80): connect failed: ETIMEDOUT (Connection timed out)
03-24 16:27:48.421 19806-20764/com.example.rini.listviewandroid W/System.err: at libcore.io.IoBridge.connect(IoBridge.java:124)
03-24 16:27:48.421 19806-20764/com.example.rini.listviewandroid W/System.err: at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:183)
03-24 16:27:48.421 19806-20764/com.example.rini.listviewandroid W/System.err: at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:456)
03-24 16:27:48.421 19806-20764/com.example.rini.listviewandroid W/System.err: at java.net.Socket.connect(Socket.java:882)
03-24 16:27:48.421 19806-20764/com.example.rini.listviewandroid W/System.err: at com.android.okhttp.internal.Platform.connectSocket(Platform.java:174)
03-24 16:27:48.422 19806-20764/com.example.rini.listviewandroid W/System.err: at com.android.okhttp.Connection.connect(Connection.java:152)
03-24 16:27:48.422 19806-20764/com.example.rini.listviewandroid W/System.err: at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:276)
03-24 16:27:48.422 19806-20764/com.example.rini.listviewandroid W/System.err: at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:211)
03-24 16:27:48.422 19806-20764/com.example.rini.listviewandroid W/System.err: at com.android.okhttp.internal.http.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:382)
03-24 16:27:48.422 19806-20764/com.example.rini.listviewandroid W/System.err: at com.android.okhttp.internal.http.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:106)
03-24 16:27:48.422 19806-20764/com.example.rini.listviewandroid W/System.err: at com.example.rini.listviewandroid.MyAdapter$ImageDownloader.doInBackground(MyAdapter.java:94)
03-24 16:27:48.422 19806-20764/com.example.rini.listviewandroid W/System.err: at com.example.rini.listviewandroid.MyAdapter$ImageDownloader.doInBackground(MyAdapter.java:77)
03-24 16:27:48.422 19806-20764/com.example.rini.listviewandroid W/System.err: at android.os.AsyncTask$2.call(AsyncTask.java:292)
03-24 16:27:48.422 19806-20764/com.example.rini.listviewandroid W/System.err: at java.util.concurrent.FutureTask.run(FutureTask.java:237)
03-24 16:27:48.422 19806-20764/com.example.rini.listviewandroid W/System.err: at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
03-24 16:27:48.422 19806-20764/com.example.rini.listviewandroid W/System.err: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
03-24 16:27:48.422 19806-20764/com.example.rini.listviewandroid W/System.err: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
03-24 16:27:48.422 19806-20764/com.example.rini.listviewandroid W/System.err: at java.lang.Thread.run(Thread.java:818)
03-24 16:27:48.422 19806-20764/com.example.rini.listviewandroid W/System.err: Caused by: android.system.ErrnoException: connect failed: ETIMEDOUT (Connection timed out)
03-24 16:27:48.422 19806-20764/com.example.rini.listviewandroid W/System.err: at libcore.io.Posix.connect(Native Method)
03-24 16:27:48.422 19806-20764/com.example.rini.listviewandroid W/System.err: at libcore.io.BlockGuardOs.connect(BlockGuardOs.java:111)
03-24 16:27:48.423 19806-20764/com.example.rini.listviewandroid W/System.err: at libcore.io.IoBridge.connectErrno(IoBridge.java:137)
03-24 16:27:48.423 19806-20764/com.example.rini.listviewandroid W/System.err: at libcore.io.IoBridge.connect(IoBridge.java:122)
03-24 16:27:48.423 19806-20764/com.example.rini.listviewandroid W/System.err: ... 17 more
Ich empfehle sehr Glide! Es ist mit vielen Funktionen ausgestattet und spart Ihnen viel Schmerz (Speicherlecks, Caching, Download des Bildes).Solange Sie keine spezielle Lösung benötigen, würde ich es verwenden. –