2016-06-11 2 views
1

следующая ситуация:Как сохранить положение перетаскиваемого ImageView в Android?

У меня есть макет с некоторыми ImageView s на нем. Пользователь может перетащить их. У меня также есть кнопка для добавления новых ImageView. При нажатии на нее вы получаете обзор, где вы можете выбрать изображение. Затем завершается обзорная активность, и вы возвращаетесь к фрагменту.

Теперь проблема:

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

Каков наилучший способ сохранить позиции перетаскиваемых ImageView? получить поля каждого и сохранить их? У меня работает SQLite DB, но я думаю, что это избыток, чтобы сохранить положение каждого ImageView.

+0

Я не думаю, что это возможно без сохранения позиции где-нибудь. –

ответ

0

Хорошо, что вы хотите, чтобы ваше приложение запоминало позиции даже в случае перезапуска?

Если это так, вам нужно использовать какое-то постоянное хранилище, такое как база данных, File или SharedPreferences.

Если нет, просто кешируйте их в памяти, например, в HashMap.

Чтобы получить позиции, вы могли бы сделать что-то подобное в вашем OnDragListener:

public boolean onDrag(View v, DragEvent event) { 

    final int action = event.getAction(); 
    switch(action) { 

     // ... 

     case DragEvent.ACTION_DROP: 
      float x = event.getX; 
      float y = event.getY; 

      savePosition(x, y); 
      break; 
    } 
} 
Смежные вопросы