Skocz do zawartości
Szwed

Wysyłanie smsów do kilku numerów jednocześnie

    Rekomendowane odpowiedzi

    Szwed

    W poradniku było dobrze, ja sobie chciałem ułatwić życie i wywołać findViewById od razu przy deklaracji żeby nie pisać dwa razy zmiennych.

    Dzięki za pomoc, teraz aplikacja działa jednak wysypuje się przy wciśnięciu przycisku wyślij. Podaje kod wywoływany po wciśnięciu przycisku.

    wyslij.setOnClickListener(new OnClickListener(){
    
    		 public void onClick(View v){
    
    
    			String stringIloscAut = bundle.getString("iloscAut");
    			String stringGodzina = bundle.getString("godzina");
    
    
    			for (int i = 0; i == 7; i++){
    				smsManager.sendTextMessage(tab[i], null, ("Kury "+dopisekNiedziela+" "+stringIloscAut+", wyjazd "+stringGodzina+". Idziesz?"), null, null);
    			}
    
    			Toast.makeText(getApplicationContext(), "Wysłano pomyślnie", Toast.LENGTH_LONG).show();
    		}
    	}); 

    Błąd pokazuje tam, gdzie jest linijka String stringIloscAut. Rodzaj błędów:

    09-20 13:22:07.705: E/AndroidRuntime(22442): FATAL EXCEPTION: main
    09-20 13:22:07.705: E/AndroidRuntime(22442): java.lang.NullPointerException
    09-20 13:22:07.705: E/AndroidRuntime(22442): 	at momo.kury.MainActivity$1.onClick(MainActivity.java:118)
    

    Deklaracje zmiennej bundle mam razem z innymi zmiennymi a przypisanie jej wartości mam po ustawieniu layoutu, tam gdzie wywołuje się findViewById

    bundle = getIntent().getExtras();

    Udostępnij tę odpowiedź


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

    A gdzie masz przekazanie do bundle zmiennej "godzina" ? Bo tego już nie pokazałeś a to właśnie to wywołanie.

    A jeśli to jest jedna aktywność to po co bundle? Bo za bardzo nie rozumiem po co ono tam jest umieszczone. Jeśli to jest jedna aktywność oczywiście.

    Udostępnij tę odpowiedź


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

    No właśnie chyba muszę znaleźć jakiś porządny poradnik i robić od podstaw bo nie jest to moja pierwsza przygoda z programowaniem, jednak pierwsza samodzielna aplikacja na androida (podstawy o aktywności, cyklu życia i ogólnie zasady działania czytałem). Użyłem bundle bo myślałem że to służy do odczytywania wartości z pól EditText. Jak polecasz to rozwiązać (przekazanie wartości z pól do treści smsa).

    Udostępnij tę odpowiedź


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

    Na poprzedniej pomogłem Ci w inicjalizowaniu czegoś takiego jak

    EditText godzina; 
    godzina = (EditText) findViewById(R.id.godzina); 

    czy jakoś tak to tam wyglądało po przeróbkach

    Teraz żeby pobrać tekst z EditText musisz zrobić:

    godzina.getText().toString() na przykład.

    ale tego uczą w samych podstawach podstaw. Nie przeskoczysz tego bo będziesz tutaj przychodził z każdą, nawet najmniejszą rzeczą. Tak jak w tym wypadku. Wydawało Ci się, że bundle do tego służy, ale tak nie jest. Poczytaj najpierw zanim weźmiesz się za robienie jakiejś aplikacji. Idź kroczkami. Postaw sobie cel. W tym wypadku to Twoja aplikacja do SMS. I przechodź kolejno od layoutu, deklaracji zmiennych, obsługi zdarzeń z kontrolek i na koniec wysłanie sms. Ty chcesz zacząć biegać zanim nauczyłeś się chodzić.

    Udostępnij tę odpowiedź


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

    No właśnie teraz dopiero widzę jakie mam braki, a wydawało mi się to prostą aplikacją na początek. Ale osiągnąłem swój cel i chociaż było sporo problemów to udało mi się osiągnąć założone działanie. Mam nadzieję że będę tutaj jak najrzadziej opisywał swoje problemy a częściej pomagał innym. Dziękuje za pomoc i pozdrawiam.

    Udostępnij tę odpowiedź


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

    Zapomniałem tam dodać, że nie pisałem nic żeby Cię urazić. Przychodź tutaj z problemami, z pomysłami i tak dalej. Jednak tak jak wspomniałem, nie można zacząć biegać kiedy nie nauczyło się chodzić :( Ciężko jest przeskoczyć to wszystko co Ty chciałeś ominąć. Powodzenia w ulepszaniu aplikacji! Powodzenia w kodzeniu.

    Udostępnij tę odpowiedź


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

    Na wstępie chciałem przeprosić za odkopywanie starego tematu, jednak problem dotyczy tej samej aplikacji i bez sensu byłoby tworzyć nowy temat.

    Chciałem ulepszyć tę aplikację ponieważ ciągle potrzebuję ją udoskonalić i chciałem ją przerobić na bardziej rozszerzalną. Otóż będzie kilka klas dla każdej osoby na liście kontaktów, klasa główna wysyłająca smsy i klasa z której będą dziedziczyły klasy tych osób. W jaki sposób mogę sprawić aby kilka klas obsługiwało jeden przycisk? Chodzi o to by najpierw wykonała się klasa z której dziedziczą inne, potem te klasy potomne i na końcu klasa główna, która wysyła smsy.

    Udostępnij tę odpowiedź


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

    Nie da się tak. Albo ja nie rozumiem zamysłu tej aplikacji ;) Nie da się zrobić żeby najpierw wykonywała się klasa główna, potem te, które po niej dziedziczą, a potem klasa, która jest jeszcze inna.

    Jeszcze pytanie czym dla Ciebie tutaj jest klasa. Czy jest to po prostu Aktywność, czy zwykła klasa dziedzicząca po Object.

    P.S. Do czego potrzebujesz kilku klas dla jednego kontaktu? Za bardzo nie rozumiem zamysłu i przez to jest to dla mnie niewykonalne :( A mogę się mylić bo jak poznam zamysł to może się okazać proste.

    Udostępnij tę odpowiedź


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

    Już tłumaczę, cała aplikacja polega na tym, że wpisuje godzinę w aplikacji, zaznaczam pracowników do których mają zostać wysłane smsy i wciskam przycisk wyślij. Wszystko działało na zasadzie pętli i warunków co było bardzo kłopotliwe do ulepszania. Chciałbym żeby dla każdego pracownika osobno można było ustawić inną godzinę (np 10 minut wcześniej niż podany czas w aplikacji) i inne iformacje. Gdybym pisał podobny program w javie, to zrobiłbym klasę pracownik, która posiada wspólne dla wszystkich cechy (godzina itp) oraz dla każdego pracownika osobną klasę w której dodawałbym dodatkowe informacje lub modyfikował te istniejące i w głównej klasie wykonywał wysyłanie smsów, nie wiem jak tę moją koncepcję przerzucić na program na androida.

    Udostępnij tę odpowiedź


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

    W ten sam sposób, przecież Android to Java.

    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ę

    • Ostatnio przeglądający   0 użytkowników

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

    x