• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Sprawdzanie otwartego Activity w Android Studio

Object Storage Arubacloud
0 głosów
147 wizyt
pytanie zadane 5 marca 2016 w Java przez azybad Mądrala (5,500 p.)
Witam, mam dość skomplikowany problem i nie umiem sobie z nim poradzić. Pytałem już na innych forach, lecz nigdzie nie uzyskałem satysfakcjonującej/dobrej odpowiedzi.

Tworzę na Androida prosty czytnik RSS.

Przedstawię schemat aplikacji:
Otwiera się menu glówne, w nim do wyboru różne żródła RSS (activity1)
Użytkownik wybiera odpowiednie żródło i otwiera się odpowiedni ekran - i tutaj chciałbym inportować odpowiednią tablicę linków żródeł RSS.

Mam klasę Constants w której są te tablice z linkami. Mam też drugą klasę, która korzysta z jednej z tych tablic. I własnie w tej klasie chciałbym, aby korzystała z odpowiedniej tablicy w zależności od tego w jakim ekranie(jakie zrodlo RSS wybrał) użytkkownik.

 

Przekazywanie przez Bundle w tym przypadku nie działa, poza tym nie jest to zbyt mało optymalny sposób. Chciałbym tylko w pewnej klasie w jakiś magiczny sposób sprawdzić jakie Activity jest otwarte, abym mógł wyświetlić odpowiednie dane.

 

Z góry dziękuję za każdą odpowiedź. Pozdrawiam serdecznie!

1 odpowiedź

+1 głos
odpowiedź 5 marca 2016 przez Sareley Gaduła (4,740 p.)
wybrane 29 marca 2016 przez azybad
 
Najlepsza

Z tego co rozumiem masz kolejno klasy.

Otwiera się menu glówne, w nim do wyboru różne żródła RSS (activity1)

Activity - Główne okno aplikacji, z listą / przyciskami które w zależności od wybranej opcji prowadzą do odpowiadających im innych activity (do każdego activity odpowiadająca im klasa).

Mam klasę Constants w której są te tablice z linkami.

Constants - klasa zawierająca tablice z linkami

Mam też drugą klasę, która korzysta z jednej z tych tablic

Klasę "pomocniczą" która coś sobie ustawia i zawiera obiekty klasy Constants.

Z głównego okna aplikacji klikasz odpowiednią opcję, ładujesz kolejne activity w zależności od wybranej opcji w tym activity chcesz z tej "pomocniczej" klasy pobrać odpowiednią tablicę i poustawiać z tej tablicy kontrolki w otwartym activity. Jeżeli o coś takiego chodzi to mógłbyś np w klasie "pomocniczej" zrobić sobie jakiegoś enuma przedstawiającego np odpowiednie dane w tablicach i w zależności od przesłanego parametru do metody zwracać odpowiednią tablicę. Przykład:

public class TestClass
{
    private ArrayList<String> test1 = new ArrayList<>();
    private ArrayList<String> test2 = new ArrayList<>();
    private ArrayList<String> test3 = new ArrayList<>();

    TestClass()
    {
        FillArray();
    }

    public enum ArrayType
    {
        RSS_TYPE_1,
        RSS_TYPE_2,
        RSS_TYPE_3
    }

    private void FillArray()
    {
        test1.add("test1");
        test1.add("xxx");
        test1.add("zzz");

        test2.add("ccc");
        test2.add("vvv");
        test2.add("qqq");

        test3.add("sss");
        test3.add("ggg");
        test3.add("jjj");
    }

    public ArrayList<String> GetArray(ArrayType openType)
    {
        switch (openType)
        {
            case RSS_TYPE_1:
                return test1;

            case RSS_TYPE_2:
                return test2;

            case RSS_TYPE_3:
                return test3;

            default:
                return test1;

        }
    }
}

I w odpowiednich activity korzystać z kopii tych tablic.

// przykład wywołania z activity

ArrayList<String> testowaLista;
TestClass testClass = new TestClass();
testowaLista = testClass.GetArray(TestClass.ArrayType.RSS_TYPE_1);

// dalsza część logiki programu.

Jeżeli chodzi o samą treść pytania to chyba mógłbyś skorzystać z obiektu Context na poszczególnym activity

Context ctx = getApplicationContext();
if (ctx instanceof MojeActivity)
{
         // wykonaj coś.
}

Wiem że coś takiego używałem jak korzystałem z fragment activity i potrzebowałem zlokalizować na którym konkretnie activity jestem ale nie pamiętam dokładnie czy w takiej formie to było poprawnie.

 

komentarz 6 marca 2016 przez azybad Mądrala (5,500 p.)
Dzięki wielkie za odpowiedź. W wolnej chwili przeanalizuję to, spróbuję wdrożyć i odpowiem

Podobne pytania

0 głosów
1 odpowiedź 135 wizyt
0 głosów
1 odpowiedź 154 wizyt
0 głosów
1 odpowiedź 100 wizyt
pytanie zadane 18 marca 2016 w Java przez azybad Mądrala (5,500 p.)

92,584 zapytań

141,434 odpowiedzi

319,671 komentarzy

61,968 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...