Skocz do zawartości
wAJT43

Przesłanie listy do innego activity

    Rekomendowane odpowiedzi

    wAJT43

    Cześć, w jaki sposób mogę przesłać listę z MainActivity do NewAppWidgetConfigureActivity. Ta druga aktywność uruchamiana jest oczywiście kiedy user chce dodać widget z mojej aplikacji. Próbuję i nic nie wychodzi.  Znalazłem bundle ale wywala error w ostatniej linijce. Może coś z jakimś "resultem" trzeba pokombinować :) Jakaś porada?

    Wysyłam z MainActivity:

    private void sendListToWidget() {
        Bundle bundle = new Bundle();
        bundle.putStringArrayList("lista" , arrayList);
        Intent intent = new Intent(this, NewAppWidgetConfigureActivity.class);
        intent.putExtras(bundle);
    }

    Odbieram w NewAppWidgetConfigureActivity: (w onCreate)

    ListView myListView;
    ArrayAdapter<String> adapter;
    ArrayList<String> arrayList;
     
    Bundle bundle = getIntent().getExtras();
    
    if(bundle != null){
    arrayList = bundle.getStringArrayList("lista");
    }else{
        Toast.makeText(this, "null", Toast.LENGTH_SHORT).show();
    }
    
    adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, arrayList); 
    myListView.setAdapter(adapter);

     

     

    
    
    
    Edytowane przez wAJT43

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach

    Czy w pierwszej aktywności ustawiasz jakąś wartość dla arrayList? Bo jeśli nie, to może być powód dla którego dostajesz błąd. 

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    wAJT43

    Właśnie myślałem, że to nie ma prawa działać. Chodzi o to, że NewAppWidgetConfigureActivity nie jest odpalane z MainActivity więc nie ma sensu używać startActivity(). Ta aktywność jest tworzona kiedy user chce dodać widget czyli kiedy  jest poza aplikacja. Zobaczcie jak u was dodaje się widgety. Lista ma kilka elementów, nie jest pusta.

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach

    ok, czyli Twoją listę powinieneś tworzyć, edytować w NewAppWidgetConfigureActivity. Wtedy przy dodawaniu widgetu user będzie mógł określić co znajdzie się na liście (a pewnie robi to teraz w MainActivity). Będziesz potrzebował AppWidgetManagera i App Widget ID.  Tutaj wskazówki jak to zrobić  https://developer.android.com/guide/topics/appwidgets/#Configuring

    Edytowane przez Coders Lab

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    wAJT43

    Listę edytuję w MainActivity a NewAppWidgetConfigureActivity chcę ją tylko wyświetlić, aby wybrać jeden element i wyświetlić go w widgecie

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach

    Musisz mieć tą listę gdzieś zapisaną. Na przykład użyć do tego SharedPreference. Wtedy w MainActivity dowolnie edytujesz listę, zapisujesz ją, a przy tworzeniu widgetu jesteś w stanie pobrać zapisaną listę.

    dodana zawartość

    Dodałem wpis w jaki sposób można to osiągnąć:

     

    Edytowane przez Coders Lab

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach

    Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

    Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

    Zarejestruj nowe konto

    Załóż nowe konto. To bardzo proste!

    Zarejestruj się

    Zaloguj się

    Posiadasz już konto? Zaloguj się poniżej.

    Zaloguj się

    • Przeglądający   0 użytkowników

      Brak zarejestrowanych użytkowników przeglądających tę stronę.