5

Potrzebuję aplikacji, która powinna mieć przepływ pracy interfejsu użytkownika, w którym użytkownik powinien mieć możliwość przeglądania określonej sekcji aplikacji, która może być listView lub GridView i gdzie może dotknąć elementu, aby ujawnić szczegóły tego konkretnego item.Now, jeśli użytkownik przesuwa się w lewo w prawo "ie ViewPager "View Pager powinien zmienić fragment, aby odsłonić następny lub poprzedni element z poprzedniej listy, w zależności od kierunku przeciągnięcia użytkownika, także gdy użytkownik wcisnął z powrotem widok szczegółowych elementów, istniejący ViewPager powinien zostać zamknięty, a poprzedni ListView lub GridView powinien zostać wyświetlony, a pozycja widoku powinna być ustawiona na element, na który patrzył użytkownik w ViewPager.Jaki jest prawidłowy sposób udostępniania danych między różnymi Działaniami lub Fragmentami?

Aby wszystko było proste i wydajne, dwa widoki, tj. ListView i Approach, powinny odczytywać i zapisywać w tej samej strukturze danych i powinny być zsynchronizowane tak, aby po załadowaniu więcej danych zostało zainicjowanych na jednym ekranie, aw międzyczasie, jeśli użytkownik wybiera konkretną pozycję, a następny widok powinien automatycznie aktualizować dane po zakończeniu ładowania na poprzednim ekranie.

enter image description here

Podobnie jak Fancy lub 9gag

EDIT: Nie chcę, aby utrzymywać bazę danych, muszę dostęp do danych tylko do procesu mój wniosek jest żywa.

+0

myślę, że masz do przekazania danych z listy lub działalności siatki działalności ViewPager zamiast tylko id i uzyskać dane z id przy użyciu bazy danych tak, jakie informacje są wyświetlane w postaci listy powinny być zachowywane w ViewPager i kiedy dane są aktualizowane w List lub Grid Actvity, które również zostaną zaktualizowane w ViewPager. –

+0

@HareshChhelana Twoje podejście ma sens, jeśli OP ma bazę danych, a co jeśli chce tylko ładować dane i używać go tylko do momentu, gdy aplikacja jest żywa? jakie podejście będzie miało więcej sensu? –

Odpowiedz

0

Android dostarcza mapowanie z wartości String do różnych typów Parcelable przy użyciu pakietu.

Dla działalności: -

Intent in = new Intent(Sender.this, Receiver.class); 
in.putString(key, value) 
startActivity(in); 

Dla Fragment użytku Bundle: -

Fragment fragment = new Fragment(); 
Bundle bundle = new Bundle(); 
bundle.putInt(key, value); 
fragment.setArguments(bundle); 

Edycja dla scenariusza: Myślę, że lepszym rozwiązaniem jest stworzenie ApplicationPool.

wykonaj poniższe czynności: - Zainicjowanie ApplicationPool: -

ApplicationPool pool = ApplicationPool.getInstance(); 

modyfikowania danych na stronie szczegółów i dodać do puli

pool.put("key", object); 

uzyskać zmienione dane na stronie listy z basenem

Object object = (Object) pool.get("key"); 

Ważne uwagi: - powiadom listview lub gri dview po uzyskaniu danych

klasy ApplicationPool plik

public class ApplicationPool { 

    private static ApplicationPool instance; 
    private HashMap<String, Object> pool; 

    private ApplicationPool() { 
     pool = new HashMap<String, Object>(); 
    } 

    public static ApplicationPool getInstance() { 

     if (instance == null) { 
      instance = new ApplicationPool(); 

     } 

     return instance; 
    } 

    public void clearCollectionPool() { 
     pool.clear(); 
    } 

    public void put(String key, Object value) { 
     pool.put(key, value); 
    } 

    public Object get(String key) { 
     return pool.get(key); 
    } 

    public void removeObject(String key) { 

     if ((pool.get(key)) != null) 
      pool.remove(key); 

    } 
} 
+0

Tak, ale co jeśli użytkownik zmienił dane w fragmentach szczegółów, które powinny znaleźć odzwierciedlenie w liście. Jak synchronizować dane? –

+0

@Tech_Intelliswift: Twoje podejście to w zasadzie Singleton, który otacza mapę Hashmap i zapewnia dostęp do niej, zastanawiałem się, dlaczego zaproponowałbyś ją na coś podobnego do obiektu aplikacji Android? Czy Twoje podejście ma pewne zalety w porównaniu z używaniem obiektu Application? –

+0

Klasa aplikacji @ArifNadeem służy do zapisywania stanu aplikacji Android i nie powinna być używana do przechowywania danych aplikacji. Patrz http://www.developerphil.com/dont-store-data-in-the-application-object/, a Singleton to wzorzec wdrażania. –

Powiązane problemy