Я разбираю данные с SQL на Android с помощью PHp. Мой PHP-файл работает нормально, потому что я могу показать текст в TextView. Теперь я хотел бы показать изображение в ImageView и попытаться загрузить это изображение с помощью клиента Picasso. Для этого я попробовал следующий код:
ArrayList> contactList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);final ImageButton filteropen = (ImageButton) findViewById(R.id.aufklaupen);
filteropen.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
RelativeLayout filter = (RelativeLayout) findViewById(R.id.filterloc);
filter.setVisibility(View.VISIBLE);
ImageButton zu = (ImageButton) findViewById(R.id.zuklappen);
zu.setVisibility(View.VISIBLE);
filteropen.setVisibility(View.INVISIBLE);
}});
final ImageButton filterclose = (ImageButton) findViewById(R.id.zuklappen);
filterclose.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
RelativeLayout filter = (RelativeLayout) findViewById(R.id.filterloc);
filter.setVisibility(View.INVISIBLE);
ImageButton auf = (ImageButton) findViewById(R.id.aufklaupen);
auf.setVisibility(View.VISIBLE);
filterclose.setVisibility(View.INVISIBLE);
}
});
lv = (ListView) findViewById(R.id.lv);
new GetContacts().execute();
;
}
private class GetContacts extends AsyncTask<Void, Void, Void> {
@Override
protected void onPreExecute() {
super.onPreExecute();
// Showing progress dialog
pDialog = new ProgressDialog(Locations.this);
pDialog.setMessage("Please wait...");
pDialog.setCancelable(false);
pDialog.show();
}
@Override
protected Void doInBackground(Void... arg0) {
HttpHandler sh = new HttpHandler();
// Making a request to url and getting response
String jsonStr = sh.makeServiceCall(url);
Log.e(TAG, "Response from url: " + jsonStr);
if (jsonStr != null) {
try {
JSONArray contacts = new JSONArray(jsonStr);
// Getting JSON Array node// looping through All Contacts
for (int i = 0; i < contacts.length(); i++) {
JSONObject c = contacts.getJSONObject(i);
String id = c.getString("id");
String name = c.getString("name");
String street = c.getString("street");
String post = c.getString("postalcode");
String musicfirst = c.getString("musicstyle");
String musicsecond = c.getString("musicsecond");
String entry = c.getString("entry");
String opening = c.getString("opening");
String agegroup = c.getString("agegroup");
String imageurl = c.getString("imageurl");
String urlbt = c.getString("urlbtn");
String fsk = c.getString("Fsk");
String city = c.getString("city");
String lat = c.getString("city");
String lng = c.getString("lng");
String bg = c.getString("bg");
imageurl = image;// tmp hash map for single contact
HashMap<String, String> contact = new HashMap<>();
// adding each child node to HashMap key => value
contact.put("id", id);
contact.put("name", name);
contact.put("street", street);
contact.put("imageurl", imageurl);
ImageView pic = (ImageView) findViewById(R.id.imagelist);// adding contact to contact list
contactList.add(contact);
}
} catch (final JSONException e) {
Log.e(TAG, "Json parsing error: " + e.getMessage());
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(getApplicationContext(),
"Json parsing error: " + e.getMessage(),
Toast.LENGTH_LONG)
.show();
}
});
}
} else {
Log.e(TAG, "Couldn't get json from server.");
runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(getApplicationContext(),
"Couldn't get json from server. Check LogCat for possible errors!",
Toast.LENGTH_LONG)
.show();
}
});
}
return null;
}
@Override
protected void onPostExecute(Void result) {
super.onPostExecute(result);
// Dismiss the progress dialog
if (pDialog.isShowing())
pDialog.dismiss();
/**3
* Updating parsed JSON data into ListView
* */
ListAdapter adapter = new SimpleAdapter(
Locations.this, contactList,
R.layout.model, new String[]{"name", "imageurl"}, new int[]{R.id.namelist,
});
ImageView img = (ImageView) findViewById(R.id.imagelist);
Picasso.with(getApplicationContext()).load(String.valueOf(contactList.get(Integer.parseInt("imageurl")))).into(img);
lv.setAdapter(adapter);
}
}
}
К сожалению, мое приложение падает, если я попробую код выше.
Спасибо
Задача ещё не решена.
Других решений пока нет …