Пикассо загрузил изображение в хэш-карту массива с помощью mysql url - PullRequest
1 голос
/ 11 марта 2019

Вопрос:

Я хочу преобразовать URL своего изображения в изображение с помощью Picasso.

Объяснил:

Используя JSON-запрос, данные поступают из базы данных.Данные содержат URL-адрес, который я хочу преобразовать в изображение (желательно с использованием Picasso).

Что он делает сейчас:

Все данные помещаются вArrayList.При извлечении данных все данные отображаются за исключением изображения (с использованием ImageView в XML).

Что я пробовал

Положите все параметры Пикассо везде, но я неНе знаю, как я могу использовать Picasso в ArrayList или HashMap.

Код

Вот фрагмент кода, который я хочу реализовать.Если нужно больше, я добавлю больше.

Часть кода перед OnCreate

ArrayList<HashMap<String, String>> recipesList;

Часть кода, загружающая список

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_two);

    // Hashmap for ListView
    recipesList = new ArrayList<HashMap<String, String>>();

    // Loading ingredients in Background Thread
    new LoadAllRecipes().execute();

    // Get listview
    ListView lv = getListView();

Часть кода, извлекающая информацию, включая тег Пикассо

if (success == 1) {
    // recipies found
    // Getting Array of Ingredients
    recipes = json.getJSONArray(TAG_recipes);

    // looping through all recipes
    for (int i = 0; i < recipes.length(); i++) {
    JSONObject c = recipes.getJSONObject(i);

    // Storing each json item in variable
    String id = c.getString(TAG_PID);
    String name = c.getString(TAG_NAME);
    String photo = c.getString(TAG_PHOTO);
    String price = c.getString(TAG_PRICE);
    String time = c.getString(TAG_TIME);

    // creating new HashMap
    HashMap<String, String> map = new HashMap<String, String>();

    // adding each child node to HashMap key => value
    map.put(TAG_PID, id);
    map.put(TAG_NAME, name);
    map.put(TAG_PRICE, price);
    map.put(TAG_TIME, time);
    Picasso.get().load(map.put( TAG_PHOTO, photo ));

    // adding HashList to ArrayList
    recipesList.add(map);

    }

Адаптер внизу

  /**
  * Updating parsed JSON data into ListView
  * */
 ListAdapter adapter;
 adapter = new SimpleAdapter(
      ActivityTwo.this, recipesList,
      R.layout.activity_two_details_cards, new String[] { TAG_PID,
      TAG_NAME, TAG_PRICE, TAG_TIME, TAG_PHOTO},
      new int [] { R.id.pid, R.id.name, R.id.price, R.id.time, R.id.imagePhoto});// updating listview
      setListAdapter(adapter);
      }

1 Ответ

0 голосов
/ 11 марта 2019

Поскольку map.put возвращает

предыдущее значение, связанное с ключом, или ноль, если не было сопоставления для ключа.(Нулевой возврат также может указывать, что карта ранее ассоциировала нулевое с ключом, если реализация поддерживает нулевые значения.)

https://docs.oracle.com/javase/7/docs/api/java/util/Map.html#put(K,%20V)

В вашем примере предыдущее значение карты для конкретногоключ нулевойВы можете исправить свой код как

...
map.put(TAG_PHOTO, photo);
Picasso.get().load(map.get(TAG_PHOTO));
...
...