The following code with ListView
instead of RecyclerView
let me compile and run but if I was not on a fault line:
recyclerview.setAdapter(new ImagenAdapter(getApplicationContext()));
and he tells me that:
setAdapter
(android.support.v7.widget.RecyclerView.Adapter)
in RecyclerView can not be applied
I've just changed where I put ListView
- > RecyclerView
changing the corresponding layout but nothing, I get that error and I can not solve it.
public class MainActivity extends AppCompatActivity {
private RecyclerView recyclerview;
ArrayList titulo = new ArrayList();
ArrayList descripcion = new ArrayList();
ArrayList imagen = new ArrayList();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
recyclerview = (RecyclerView) findViewById(R.id.recyclerview);
descargarImagen();
}
private void descargarImagen() {
final ProgressDialog progressDialog = new ProgressDialog(MainActivity.this);
progressDialog.setMessage("Cargando Datos...");
progressDialog.show();
AsyncHttpClient client = new AsyncHttpClient();
client.get("http://rudeboys.esy.es/valbit/query.php", new AsyncHttpResponseHandler() {
@Override
public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) {
if (statusCode == 200) {
progressDialog.dismiss();
try {
JSONArray jsonArray = new JSONArray(new String(responseBody));
for (int i = 0; i < jsonArray.length(); i++) {
titulo.add(jsonArray.getJSONObject(i).getString("titulo"));
descripcion.add(jsonArray.getJSONObject(i).getString("descripcion"));
imagen.add(jsonArray.getJSONObject(i).getString("imagen"));
}
//////////En esta línea de bajo es EL FALLO/////////////
recyclerview.setAdapter(new ImagenAdapter(getApplicationContext()));
} catch (JSONException e) {
e.printStackTrace();
}
}
}
@Override
public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) {
}
});
}
private class ImagenAdapter extends BaseAdapter {
Context ctx;
LayoutInflater layoutInflater;
SmartImageView smartImageView;
TextView tvtitulo, tvdescripcion;
public ImagenAdapter(Context applicationContext) {
this.ctx = applicationContext;
layoutInflater = (LayoutInflater) ctx.getSystemService(LAYOUT_INFLATER_SERVICE);
}
@Override
public int getCount() {
return imagen.size();
}
@Override
public Object getItem(int position) {
return position;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View converView, ViewGroup parent) {
ViewGroup viewGroup = (ViewGroup) layoutInflater.inflate(R.layout.activity_main_item,null);
smartImageView = (SmartImageView)viewGroup.findViewById(R.id.imagen1);
tvtitulo = (TextView) viewGroup.findViewById(R.id.tvtitulo);
tvdescripcion = (TextView) viewGroup.findViewById(R.id.tvDescripcion);
String urlfinal ="http://rudeboys.esy.es/valbit/images/"+imagen.get(position).toString();
Rect rect = new Rect(smartImageView.getLeft(), smartImageView.getTop(), smartImageView.getRight(), smartImageView.getBottom());
smartImageView.setImageUrl(urlfinal,rect);
return viewGroup;
}
}
}