🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.java
43 messages
43 total messages Started by TheGuru Thu, 09 Aug 2012 19:14
początki lamera ;-)
#153539
Author: TheGuru
Date: Thu, 09 Aug 2012 19:14
33 lines
1955 bytes
Witajcie,
chciałbym spróbować programowania na androida. Dla własnej satysfakcji a 
także by pomóc i popracować z córką nad materiałem na kółko informatyczne 
;-)

Ściągnąłem  z sieci kilka samouczków i na samym początku pojawiły się 
kłopoty.

1 - Java SE JDK :
ściągnąłem z http://www.oracle.com/technetwork/java/javase/downloads/   plik 
Java SE JDK-7u5-windows-x64.exe  97MB
wszystko poszło ok instalacja zakończona sukcesem

przypisałem zmienną systemową JAVA_HOME  i PATH

2 - Eclipse IDE for Java Developers:
ściągnąłem z http://www.eclipse.org/downloads/ nie instaluje się tylko od 
razu uruchamia

3 - Android SDK Starter Package
wywala mi błąd Java SE[...] not found
przypisz JAVA_HOME

Pomożecie?
acha mam Windowsa7 64 bit.


Jak mogę pisać bezpośrednio na tablecie z androidem? czy są ułatwiające 
pracę programy i czy tak się da?

pozdrawiam licząc na pomoc

robert 
Re: początki lamera ;-)
#153540
Author: smiejta_sie_z_tegp
Date: Thu, 09 Aug 2012 20:46
37 lines
2120 bytes
Eclipse juz masz, wiec proponuje jeszcze springa. Miłego dnia.
robson

W dniu 2012-08-09 21:14, TheGuru pisze:
> Witajcie,
> chciałbym spróbować programowania na androida. Dla własnej satysfakcji a
> także by pomóc i popracować z córką nad materiałem na kółko
> informatyczne ;-)
>
> Ściągnąłem  z sieci kilka samouczków i na samym początku pojawiły się
> kłopoty.
>
> 1 - Java SE JDK :
> ściągnąłem z http://www.oracle.com/technetwork/java/javase/downloads/
> plik Java SE JDK-7u5-windows-x64.exe  97MB
> wszystko poszło ok instalacja zakończona sukcesem
>
> przypisałem zmienną systemową JAVA_HOME  i PATH
>
> 2 - Eclipse IDE for Java Developers:
> ściągnąłem z http://www.eclipse.org/downloads/ nie instaluje się tylko
> od razu uruchamia
>
> 3 - Android SDK Starter Package
> wywala mi błąd Java SE[...] not found
> przypisz JAVA_HOME
>
> Pomożecie?
> acha mam Windowsa7 64 bit.
>
>
> Jak mogę pisać bezpośrednio na tablecie z androidem? czy są ułatwiające
> pracę programy i czy tak się da?
>
> pozdrawiam licząc na pomoc
>
> robert
Re: początki lamera ;-)
#153541
Author: TheGuru
Date: Thu, 09 Aug 2012 22:26
42 lines
2236 bytes
>Eclipse juz masz, wiec proponuje jeszcze springa. Miłego dnia.
>robson

ale czy spring rozwiąże mi kłopot nieskonfigurowanej javy ??




W dniu 2012-08-09 21:14, TheGuru pisze:
> Witajcie,
> chciałbym spróbować programowania na androida. Dla własnej satysfakcji a
> także by pomóc i popracować z córką nad materiałem na kółko
> informatyczne ;-)
>
> Ściągnąłem  z sieci kilka samouczków i na samym początku pojawiły się
> kłopoty.
>
> 1 - Java SE JDK :
> ściągnąłem z http://www.oracle.com/technetwork/java/javase/downloads/
> plik Java SE JDK-7u5-windows-x64.exe  97MB
> wszystko poszło ok instalacja zakończona sukcesem
>
> przypisałem zmienną systemową JAVA_HOME  i PATH
>
> 2 - Eclipse IDE for Java Developers:
> ściągnąłem z http://www.eclipse.org/downloads/ nie instaluje się tylko
> od razu uruchamia
>
> 3 - Android SDK Starter Package
> wywala mi błąd Java SE[...] not found
> przypisz JAVA_HOME
>
> Pomożecie?
> acha mam Windowsa7 64 bit.
>
>
> Jak mogę pisać bezpośrednio na tablecie z androidem? czy są ułatwiające
> pracę programy i czy tak się da?
>
> pozdrawiam licząc na pomoc
>
> robert 
Re: początki lamera ;-)
#153542
Author: Arivald
Date: Thu, 09 Aug 2012 23:37
39 lines
2471 bytes
W dniu 2012-08-09 21:14, TheGuru pisze:
> Witajcie,
> chciałbym spróbować programowania na androida. Dla własnej satysfakcji a
> także by pomóc i popracować z córką nad materiałem na kółko
> informatyczne ;-)
>
> Ściągnąłem  z sieci kilka samouczków i na samym początku pojawiły się
> kłopoty.
>
> 1 - Java SE JDK :
> ściągnąłem z http://www.oracle.com/technetwork/java/javase/downloads/
> plik Java SE JDK-7u5-windows-x64.exe  97MB
> wszystko poszło ok instalacja zakończona sukcesem
>
> przypisałem zmienną systemową JAVA_HOME  i PATH
>
> 2 - Eclipse IDE for Java Developers:
> ściągnąłem z http://www.eclipse.org/downloads/ nie instaluje się tylko
> od razu uruchamia
>
> 3 - Android SDK Starter Package
> wywala mi błąd Java SE[...] not found
> przypisz JAVA_HOME
>
> Pomożecie?
> acha mam Windowsa7 64 bit.
>
>

Może to pomoże:
http://stackoverflow.com/questions/4382178/android-sdk-installation-doesnt-find-jdk

> Jak mogę pisać bezpośrednio na tablecie z androidem? czy są ułatwiające
> pracę programy i czy tak się da?

https://play.google.com/store/apps/details?id=com.aide.ui&hl=pl

-- 
Arivald
Re: początki lamera ;-)
#153543
Author: TheGuru
Date: Sat, 11 Aug 2012 11:07
29 lines
2036 bytes
>Może to pomoże:
>http://stackoverflow.com/questions/4382178/android-sdk-installation-doesnt-find-jdk

dzięki koniec końców pomogła jedna z podpowiedzi. Unistal i instal wersję 
32bit ;-)

>> Jak mogę pisać bezpośrednio na tablecie z androidem? czy są ułatwiające
>> pracę programy i czy tak się da?

> https://play.google.com/store/apps/details?id=com.aide.ui&hl=pl

dzięki fajnie wygląda i z opisu i komentarzy sporo potrafi.


ALE ...:-)

Postępuję zgodnie z instrukcjami i mam kolejny kłopot tym razem z Eclipse.

zaczynam nowy projekt file->new -> project   i powinienem wybrać Android 
Project  ale takiego menu nie ma ;-(

Wybierałem Java ale z kolei dla takiego projektu pole do wpisania kodu jest 
nieaktywne.
mam eclipse Eclipse Java EE IDE for Web Developers.build id: 20100218-1602.


pozdrawiam licząc na dalszą pomoc.

robert 
Re: początki lamera ;-)
#153544
Author: Tomasz Łabuz
Date: Sat, 11 Aug 2012 12:55
22 lines
1786 bytes
> Postępuję zgodnie z instrukcjami i mam kolejny kłopot tym razem z Eclipse.
>
> zaczynam nowy projekt file->new -> project   i powinienem wybrać Android
> Project  ale takiego menu nie ma ;-(
>

do eclipse trzeba doinstalować odpowiedni plugin
jest instrukcja w dokumentacji android sdk zdaje się
a jeśli masz zainstalowany czasem nie wszystkie rodzaje projektów są 
widoczne od razu, jest jeszcze opcja Other rozwijająca wszystkie rodzaje 
projektów dostępnych w środowisku

> Wybierałem Java ale z kolei dla takiego projektu pole do wpisania kodu
> jest nieaktywne.

jakie pole do wpisania kodu na Teutatesa?

> mam eclipse Eclipse Java EE IDE for Web Developers.build id: 20100218-1602.
>

jeśli "gołe" to nie ma w nim na stan mojej wiedzy narzędzi do Androida, 
patrz punkt pierwszy o pluginach
Re: początki lamera ;-)
#153545
Author: TheGuru
Date: Sat, 11 Aug 2012 15:59
30 lines
2165 bytes
>> Postępuję zgodnie z instrukcjami i mam kolejny kłopot tym razem z 
>> Eclipse.
>>
>> zaczynam nowy projekt file->new -> project   i powinienem wybrać Android
>> Project  ale takiego menu nie ma ;-(
>>

>do eclipse trzeba doinstalować odpowiedni plugin
>jest instrukcja w dokumentacji android sdk zdaje się
>a jeśli masz zainstalowany czasem nie wszystkie rodzaje projektów są 
>widoczne od razu, jest jeszcze opcja Other rozwijająca wszystkie rodzaje 
>projektów dostępnych w środowisku

>> Wybierałem Java ale z kolei dla takiego projektu pole do wpisania kodu
>> jest nieaktywne.

>jakie pole do wpisania kodu na Teutatesa?

takie w które mogę wpisać przysłowiowe "Hello Word"


>> mam eclipse Eclipse Java EE IDE for Web Developers.build id: 
>> 20100218-1602.
>>

>jeśli "gołe" to nie ma w nim na stan mojej wiedzy narzędzi do Androida, 
>patrz punkt pierwszy o pluginach

szukam dalej....
Re: początki lamera ;-)
#153546
Author: Tomasz Łabuz
Date: Sat, 11 Aug 2012 16:15
24 lines
1656 bytes
>>> Wybierałem Java ale z kolei dla takiego projektu pole do wpisania kodu
>>> jest nieaktywne.
>
>> jakie pole do wpisania kodu na Teutatesa?
>
> takie w które mogę wpisać przysłowiowe "Hello Word"
>

no ale to trzeba przecież stworzyć sobie klasę, otworzyć w edytorze a 
nie ma "pola" do wpisania kodu....

>
>>> mam eclipse Eclipse Java EE IDE for Web Developers.build id:
>>> 20100218-1602.
>>>
>
>> jeśli "gołe" to nie ma w nim na stan mojej wiedzy narzędzi do
>> Androida, patrz punkt pierwszy o pluginach
>
> szukam dalej....

może szukasz tego?
http://developer.android.com/tools/sdk/eclipse-adt.html
Re: początki lamera ;-)
#153547
Author: Arivald
Date: Sat, 11 Aug 2012 18:14
43 lines
2956 bytes
W dniu 2012-08-11 13:07, TheGuru pisze:
>
> Postępuję zgodnie z instrukcjami i mam kolejny kłopot tym razem z Eclipse.
>
> zaczynam nowy projekt file->new -> project   i powinienem wybrać Android
> Project  ale takiego menu nie ma ;-(
>

Zainstalowany ADT Plugin? (Android Development Tools) Jak nie to 
http://developer.android.com/sdk/installing/installing-adt.html


> Wybierałem Java ale z kolei dla takiego projektu pole do wpisania kodu
> jest nieaktywne.

"pole do wpisania kodu" czyli co?

Jak wybrałeś goły projekt Javy (bez kreatora) to dostajesz pusty katalog 
na źródła "src". Powinieneś mieć w widoku "Package Explorer", w drzewem 
plików źródłowych i zależności. Klikasz na katalogu "src" prawym, i z 
menu new/class (dodajesz nowy plik źródłowy z jedną klasą do projektu). 
W kreatorze wpisujesz nazwę paczki (package), i potem nazwę pliku. 
Zatwierdzasz, i Eclipse powinien automatycznie otworzyć edytor dla 
takiego pliku.

Dla każdego innego pliku w projekcie otwierasz dedykowany edytor poprzez 
dwuklik na pliku.

Do testów możesz użyć dowolnej nazwy paczki. W javie jest taka konwencja 
że jako początek nazwy paczki stosuje się odwróconą domenę. i tak na 
przykład cały kod z appache jest w paczce "org.apache" (i jej 
pod-paczakach). Jak nie masz domeny, to użyj czegoś w miarę 
niepowtarzalnego.
Konwencja została wprowadzona dla uniknięcia konfliktów nazw paczek.

Więcej o konwencjach tu:
http://www.oracle.com/technetwork/java/codeconv-138413.html

Oczywiście jest to tylko konwencja, nie musisz się stosować. Po prostu 
ułatwia to pracę na dłuższą metę.

-- 
Arivald
Re: początki lamera ;-)
#153548
Author: TheGuru
Date: Sat, 11 Aug 2012 19:31
10 lines
1563 bytes
> Zainstalowany ADT Plugin? (Android Development Tools) Jak nie to
> http://developer.android.com/sdk/installing/installing-adt.html

Miałem Eclipse Galileo, które nie wspiera androida, szkoda że nie było to 
napisane przy pliku instalacyjnym.
Zainstalowałem Eclipse juno 32 bit i poszło ;-)

dzięki za pomoc
robert 
Re: początki lamera ;-)
#153549
Author: Tomasz Łabuz
Date: Sat, 11 Aug 2012 20:06
13 lines
1500 bytes
W dniu 2012-08-11 21:31, TheGuru pisze:
>
>> Zainstalowany ADT Plugin? (Android Development Tools) Jak nie to
>> http://developer.android.com/sdk/installing/installing-adt.html
>
> Miałem Eclipse Galileo, które nie wspiera androida, szkoda że nie było
> to napisane przy pliku instalacyjnym.


zależy zdaje się, która wersja ADT
http://developer.android.com/sdk/index.html#Requirements
"Note: Eclipse 3.5 (Galileo) is no longer supported with the latest 
version of ADT."
Re: początki lamera ;-)
#153550
Author: TheGuru
Date: Tue, 28 Aug 2012 10:31
19 lines
1550 bytes
Witam,
stanąłem przed nowym problemem.

Po napisaniu programu w Eclipse wciskam ikonę RUN. Liczyłem na to, że pojawi 
się jakieś okienko wirtualnego urządzenia (jak w różnych tutorialach).
W oknie Console pojawia się tylko komunikat
Error occurred during initialization of VM

java/lang/NoClassDefFoundError: java/lang/ref/FinalReference





nie mogę sobie z tym poradzić.

pozdrawiam licząc na pomoc.

robert
Re: początki lamera ;-)
#153551
Author: TheGuru
Date: Tue, 28 Aug 2012 11:56
16 lines
1659 bytes
>Witam,
>stanąłem przed nowym problemem.

>Po napisaniu programu w Eclipse wciskam ikonę RUN. Liczyłem na to, że 
>pojawi się jakieś okienko wirtualnego urządzenia (jak w różnych 
>tutorialach).
>W oknie Console pojawia się tylko komunikat

>Error occurred during initialization of VM
>java/lang/NoClassDefFoundError: java/lang/ref/FinalReference


znalazłem takie coś http://www.frickingnutz.com/files/android_pdf/FAQs.pdf

ale podpowiedzi nie pomogły....DLACZEGO !!!??? 
Re: początki lamera ;-)
#153552
Author: Arivald
Date: Tue, 28 Aug 2012 13:21
23 lines
1665 bytes
W dniu 2012-08-28 12:31, TheGuru pisze:
> Witam,
> stanąłem przed nowym problemem.
>
> Po napisaniu programu w Eclipse wciskam ikonę RUN. Liczyłem na to, że
> pojawi się jakieś okienko wirtualnego urządzenia (jak w różnych
> tutorialach).
> W oknie Console pojawia się tylko komunikat
> Error occurred during initialization of VM
>
> java/lang/NoClassDefFoundError: java/lang/ref/FinalReference
>

Może 
http://stackoverflow.com/questions/9455236/eclipse-error-noclassdeffounderror-java-lang-ref-finalreference

BTW Eclipsów możesz mieć jak mrówków, ja mam osobne instancje (katalogi) 
dla Android-owego Eclipsa i Spring-owego Eclipsa. Plus okazyjnie 
instancje do testów.


-- 
Arivald
Re: początki lamera ;-)
#153567
Author: MarekF
Date: Tue, 28 Aug 2012 18:49
19 lines
1782 bytes
Użytkownik "TheGuru" <theguru@wp.pl> napisał w wiadomości 
news:k1i6mf$3ip$1@news.icpnet.pl...
> Witam,
> stanąłem przed nowym problemem.
>
> Po napisaniu programu w Eclipse wciskam ikonę RUN. Liczyłem na to, że 
> pojawi się jakieś okienko wirtualnego urządzenia (jak w różnych 
> tutorialach).
> W oknie Console pojawia się tylko komunikat
> Error occurred during initialization of VM
>
> java/lang/NoClassDefFoundError: java/lang/ref/FinalReference
Witam
Zainstalowales AVD?
W eclipse Window->AVD Manager masz cos?
PS. Ja tez zaczalem od kilku dni nauke.
Pozdr
marekF 
Re: początki lamera ;-)
#153553
Author: TheGuru
Date: Tue, 28 Aug 2012 19:23
69 lines
3487 bytes
/*
> Witam,
> stanąłem przed nowym problemem.
>
> Po napisaniu programu w Eclipse wciskam ikonę RUN. Liczyłem na to, że
> pojawi się jakieś okienko wirtualnego urządzenia (jak w różnych
> tutorialach).
> W oknie Console pojawia się tylko komunikat
> Error occurred during initialization of VM
>
> java/lang/NoClassDefFoundError: java/lang/ref/FinalReference
>

Może
http://stackoverflow.com/questions/9455236/eclipse-error-noclassdeffounderror-java-lang-ref-finalreference

BTW Eclipsów możesz mieć jak mrówków, ja mam osobne instancje (katalogi)
dla Android-owego Eclipsa i Spring-owego Eclipsa. Plus okazyjnie
instancje do testów.
*/


koniec końców otwiera mi się okienko z emulatorem androida ale pojawia się 
kolejny kłopot!!!
Dlaczego to wszystko działa jak z początków PC? Na domyślnych ustawieniach 
nie działa konfiguracja wymaga ogromnie dużo zachodu..... i każde jedno 
rozwiązanie daje dwa nowe kłopoty.


Nie wiem przez co połączenie zostało przerwane. Wyłączyłem zaporę ale nie 
pomogło.

[2012-08-28 21:15:48 - ddmlib] Nawiązane połączenie zostało przerwane przez 
oprogramowanie zainstalowane w komputerze-hoście

java.io.IOException: Nawiązane połączenie zostało przerwane przez 
oprogramowanie zainstalowane w komputerze-hoście

at sun.nio.ch.SocketDispatcher.write0(Native Method)

at sun.nio.ch.SocketDispatcher.write(Unknown Source)

at sun.nio.ch.IOUtil.writeFromNativeBuffer(Unknown Source)

at sun.nio.ch.IOUtil.write(Unknown Source)

at sun.nio.ch.SocketChannelImpl.write(Unknown Source)

at com.android.ddmlib.JdwpPacket.writeAndConsume(JdwpPacket.java:213)

at com.android.ddmlib.Client.sendAndConsume(Client.java:575)

at com.android.ddmlib.HandleHeap.sendREAQ(HandleHeap.java:348)

at com.android.ddmlib.Client.requestAllocationStatus(Client.java:421)

at com.android.ddmlib.DeviceMonitor.createClient(DeviceMonitor.java:837)

at com.android.ddmlib.DeviceMonitor.openClient(DeviceMonitor.java:805)

at 
com.android.ddmlib.DeviceMonitor.processIncomingJdwpData(DeviceMonitor.java:765)

at 
com.android.ddmlib.DeviceMonitor.deviceClientMonitorLoop(DeviceMonitor.java:652)

at com.android.ddmlib.DeviceMonitor.access$100(DeviceMonitor.java:44)

koniec końców otwiera mi się okienko z emulatorem androida
Re: początki lamera ;-)
#153568
Author: TheGuru
Date: Tue, 28 Aug 2012 19:41
28 lines
1993 bytes
/*
> Witam,
> stanąłem przed nowym problemem.
>
> Po napisaniu programu w Eclipse wciskam ikonę RUN. Liczyłem na to, że 
> pojawi się jakieś okienko wirtualnego urządzenia (jak w różnych 
> tutorialach).
> W oknie Console pojawia się tylko komunikat
> Error occurred during initialization of VM
>
> java/lang/NoClassDefFoundError: java/lang/ref/FinalReference
Witam

Zainstalowales AVD?

W eclipse Window->AVD Manager masz cos?
*/

tak ale nie instalowałem tylko konfigurowałem ;-)
Wywala mi te błędy i po jakimś czasie przełącza się na pulpit androida.

// PS. Ja tez zaczalem od kilku dni nauke.

Nie jest łatwo zacząć:-(

Chętnie już bym coś zaczął pisać i zgłębiał tajniki 'obiektowości' a tak 
tracę czas i nerwy na konfigurowanie środowiska....
Re: początki lamera ;-)
#153554
Author: Arivald
Date: Tue, 28 Aug 2012 19:48
53 lines
3025 bytes
W dniu 2012-08-28 21:23, TheGuru pisze:
> /*
>> Witam,
>> stanąłem przed nowym problemem.
[...]
>
> koniec końców otwiera mi się okienko z emulatorem androida ale pojawia
> się kolejny kłopot!!!
> Dlaczego to wszystko działa jak z początków PC? Na domyślnych
> ustawieniach nie działa konfiguracja wymaga ogromnie dużo zachodu..... i
> każde jedno rozwiązanie daje dwa nowe kłopoty.

Mi poszło na domyślnych...


> Nie wiem przez co połączenie zostało przerwane. Wyłączyłem zaporę ale
> nie pomogło.
>
> [2012-08-28 21:15:48 - ddmlib] Nawiązane połączenie zostało przerwane
> przez oprogramowanie zainstalowane w komputerze-hoście
>
> java.io.IOException: Nawiązane połączenie zostało przerwane przez
> oprogramowanie zainstalowane w komputerze-hoście
[...]
> at com.android.ddmlib.DeviceMonitor.access$100(DeviceMonitor.java:44)

Z tym nie pomogę...

> koniec końców otwiera mi się okienko z emulatorem androida

Ale z emulatora możesz zrezygnować, jeśli masz urządzenie z Androidem. 
Emulator jest strasznie powolny.
Po prostu włączasz w urządzeniu tryb developerski (przycisk menu, 
Ustawienia/Aplikacje/Dla Programistów i tam zaznacz "Debugowanie USB". 
Do tego "zostaw włączony" żeby się sam nie wyłączał dopóki kabel USB 
jest podłączony (i tak nie trzeba oszczędzać energii), i ewentualnie 
inne w/g uznania.

BTW ja używam "Zatrzymaj aplikację przyciskiem wstecz" do killowania 
zawieszonych apek.



Przy okazji może się przydać jakiś program do zarządzania fonem poprzez 
ADB. Np używany prze ze mnie QtADB umożliwia instalację aplikacji z PC, 
backupy, dostęp do partycji systemowych, shella, itp. Jak masz roota na 
telefonie, to możesz nawet zapisywać pliki na partycji systemowej 
(trzeba ją zamontować najpierw w trybie do zapisu).

http://qtadb.wordpress.com/

-- 
Arivald
Re: początki lamera ;-)
#153555
Author: TheGuru
Date: Wed, 29 Aug 2012 11:47
12 lines
1552 bytes
// Mi poszło na domyślnych...


zamierzam wywalić wszystko i poinstalować od nowa.
Możesz powiedzieć co i w jakiej kolejności zainstalować by ruszyło z kopyta 
po kliknięciu [Zakończ].

// Ale z emulatora możesz zrezygnować, jeśli masz urządzenie z Androidem.
// Emulator jest strasznie powolny.

na tablecie za szybko nie śmiga (kompiluje, instaluje....)  :-) 
Re: początki lamera ;-)
#153557
Author: TheGuru
Date: Thu, 30 Aug 2012 09:04
23 lines
2104 bytes

// > koniec końców otwiera mi się okienko z emulatorem androida

// Ale z emulatora możesz zrezygnować, jeśli masz urządzenie z Androidem.
// Emulator jest strasznie powolny.

Mam zbyt mały zasób brzydkich słów by opisać to co przechodzę z Eclipse.
Koniec końców mam okienko emulatora ale zgodnie z tym co powiedziałem 
wcześniej rozwiązanie jednego kłopotu generuje dwa nowe ;-(

Otwiera mi się okienko a androidem. mogę przesuwać ekrany i robić rzeczy jak 
na prawdziwym urządzeniu (rzeczywiście bardzo wolno działa).

W widżecie MyApps mam tylko MainActivity brakuje app o mojej nazwie.

Ale po kliknięciu na RUN w Eclipse w oknie konsoli wyświetla się "Wello 
World" a w moim programie nie ma tych słów ;-P

czy muszę przenieść moją apkę do konsoli czy coś....???

pozdrawiam
licząc na Waszą pomoc 
Re: początki lamera ;-)
#153558
Author: Arivald
Date: Thu, 30 Aug 2012 09:38
48 lines
2812 bytes
W dniu 2012-08-30 11:04, TheGuru pisze:
>
>
> // > koniec końców otwiera mi się okienko z emulatorem androida
>
> // Ale z emulatora możesz zrezygnować, jeśli masz urządzenie z Androidem.
> // Emulator jest strasznie powolny.
>
> Mam zbyt mały zasób brzydkich słów by opisać to co przechodzę z Eclipse.
> Koniec końców mam okienko emulatora ale zgodnie z tym co powiedziałem
> wcześniej rozwiązanie jednego kłopotu generuje dwa nowe ;-(
>
> Otwiera mi się okienko a androidem. mogę przesuwać ekrany i robić rzeczy
> jak na prawdziwym urządzeniu (rzeczywiście bardzo wolno działa).
>
> W widżecie MyApps mam tylko MainActivity brakuje app o mojej nazwie.

Jeszcze jej nie zainstalowałeś... albo może w tym widżecie trzeba wybrać 
które aplikacje mają się pojawiać (bo nie kojarzę widzeta...)

>
> Ale po kliknięciu na RUN w Eclipse  [...]

...Eclipse buduje plik APK, a potem używając ADB (Android Debug Bridge), 
przesyła aplikację i instaluje zdalnie w emulatorze, a potem ją uruchamia.

Teraz już będziesz miał aplikację zainstalowaną (jak wszystkie inne) i 
spokojnie możesz ją ręcznie uruchomić. A także wyciągnąć na pulpit czy 
do ulubionego launchera.


Jak podłączysz rzeczywiste urządzenie, z włączonym wsparciem dla ADB, to 
wszystko będzie działać tak samo.


 > w oknie konsoli wyświetla się "Wello
> World" a w moim programie nie ma tych słów ;-P

Są, w zasobach (folder "gen", Generated Java Files).
W XMLu MainActivity jest tylko Id zasobu, w sekcji "string".

BTW czasem zasoby się nie przebudowują od razu po zmianie XML, wtedy 
trzeba przebudować projekt (menu Project). Wystarczy Clean jeśli masz 
auto-build właczony.


-- 
Arivald
Re: początki lamera ;-)
#153556
Author: Arivald
Date: Thu, 30 Aug 2012 09:44
27 lines
1959 bytes
W dniu 2012-08-29 13:47, TheGuru pisze:
>
> // Mi poszło na domyślnych...
>
>
> zamierzam wywalić wszystko i poinstalować od nowa.
> Możesz powiedzieć co i w jakiej kolejności zainstalować by ruszyło z
> kopyta po kliknięciu [Zakończ].
>
> // Ale z emulatora możesz zrezygnować, jeśli masz urządzenie z Androidem.
> // Emulator jest strasznie powolny.
>
> na tablecie za szybko nie śmiga (kompiluje, instaluje....)  :-)

Chodzi mi o używanie prawdziwego urządzenia zamiast emulatora. Kodujesz 
dalej na PC.

Programiści z Google zrobili to dla swojej wygody. Podłączasz tablet 
poprzez USB, umieszczasz na podstawce/pałąku, tak żeby mieć wygodny 
dostęp, i programowanie/testowanie staje się znacznie szybsze.

Emulatora wtedy się używa do testowania innych wersji API, innych 
rozdzielczosci ekranu czy innych DPI.


-- 
Arivald
Re: początki lamera ;-)
#153560
Author: TheGuru
Date: Thu, 30 Aug 2012 13:01
35 lines
2545 bytes
// > W widżecie MyApps mam tylko MainActivity brakuje app o mojej nazwie.

// Jeszcze jej nie zainstalowałeś... albo może w tym widżecie trzeba wybrać
// które aplikacje mają się pojawiać (bo nie kojarzę widzeta...)

Jest to 2 menu po kliknięciu w ikonę aplikacji w prawym górnym rogu.

Czy bez tworzenia ACTIVITY w Eclipse zobaczę jakieś efekty na urządzeniu? 
Otworzy się jakieś okienko czy coś, w którym zobaczę choć jakiś tekst na 
początek?



/*
> Ale po kliknięciu na RUN w Eclipse  [...]

...Eclipse buduje plik APK, a potem używając ADB (Android Debug Bridge),
przesyła aplikację i instaluje zdalnie w emulatorze, a potem ją uruchamia.

Teraz już będziesz miał aplikację zainstalowaną (jak wszystkie inne) i
spokojnie możesz ją ręcznie uruchomić. A także wyciągnąć na pulpit czy
do ulubionego launchera.
*/

Mam kłopot ze znalezieniem ikonki z programem. Jest w zainstalowanych 
aplikacjach ale nie mogę znaleźć w eksploratorze.....;-)


Zainstalowałem inną wersję Eclipse Juno. W tej wersji nie mam AVD ale za to 
uruchamia się VM.

kurcze, kurcze, kurcze, kurcze, kurcze,

strasznie to wszystko deprymujące 
Re: początki lamera ;-)
#153559
Author: Arivald
Date: Thu, 30 Aug 2012 13:39
57 lines
3058 bytes
W dniu 2012-08-30 15:01, TheGuru pisze:
>
> // > W widżecie MyApps mam tylko MainActivity brakuje app o mojej nazwie.
>
> // Jeszcze jej nie zainstalowałeś... albo może w tym widżecie trzeba wybrać
> // które aplikacje mają się pojawiać (bo nie kojarzę widzeta...)
>
> Jest to 2 menu po kliknięciu w ikonę aplikacji w prawym górnym rogu.
>
> Czy bez tworzenia ACTIVITY w Eclipse zobaczę jakieś efekty na
> urządzeniu? Otworzy się jakieś okienko czy coś, w którym zobaczę choć
> jakiś tekst na początek?

Afaik nie, Activity reprezentuje właśnie jedno okienko.

Jest jeszcze sposób na pokazanie powiadomień, np w dymkach czy na pasku, 
ale się w to jeszcze nie bawiłem.


> /*
>> Ale po kliknięciu na RUN w Eclipse  [...]
>
> ...Eclipse buduje plik APK, a potem używając ADB (Android Debug Bridge),
> przesyła aplikację i instaluje zdalnie w emulatorze, a potem ją uruchamia.
>
> Teraz już będziesz miał aplikację zainstalowaną (jak wszystkie inne) i
> spokojnie możesz ją ręcznie uruchomić. A także wyciągnąć na pulpit czy
> do ulubionego launchera.
> */
>
> Mam kłopot ze znalezieniem ikonki z programem. Jest w zainstalowanych
> aplikacjach ale nie mogę znaleźć w eksploratorze.....;-)

W jakim eksploratorze? w tablecie? czy obrazek ikonki w Eclipsie?

W tablecie wyciągniej sobie ikonke aplikacji na pulpit.

>
> Zainstalowałem inną wersję Eclipse Juno. W tej wersji nie mam AVD ale za
> to uruchamia się VM.

VM Javy? Tylko nie jest Ci to potrzebne... i tak apki się uruchamia w 
emulatorze lub na urządzeniu, uzywając Dalvika.

A do kodowania w Javie nie-androidowej używaj po prostu osobnej 
instancji Eclipse.

> kurcze, kurcze, kurcze, kurcze, kurcze,
>
> strasznie to wszystko deprymujące

Spokojnie, prawdziwe kłopoty dopiero przed tobą ;-)

Hmmm... rozważałeś może zmianę nicka? ;->

-- 
Arivald
Re: początki lamera ;-)
#153561
Author: TheGuru
Date: Thu, 30 Aug 2012 14:51
24 lines
2191 bytes
/*
> Czy bez tworzenia ACTIVITY w Eclipse zobaczę jakieś efekty na
> urządzeniu? Otworzy się jakieś okienko czy coś, w którym zobaczę choć
> jakiś tekst na początek?

Afaik nie, Activity reprezentuje właśnie jedno okienko.
*/

ok to teraz rozumiem skąd to "hello world". standardowe Activity to ma.
tylko teraz muszę w kod powiązać z Activity i pokazać, że system.out.print() 
ma drukować w okienku ....ale jak ;-)


// Spokojnie, prawdziwe kłopoty dopiero przed tobą ;-)

tak wiem ale będą to konkretne kłopoty a nie takie pierdoły przed właściwym 
pisaniem


// Hmmm... rozważałeś może zmianę nicka? ;->

:-D a wiesz że nick jest w temacie.... kiedyś pisałem w assemblerze na 
Amidze i czasami jak chciałem się czymś pochwalić to wyskakiwał GURU ALLERT 
i tak mi zostało... 
Re: początki lamera ;-)
#153562
Author: TheGuru
Date: Thu, 30 Aug 2012 16:48
28 lines
2180 bytes

Użytkownik "TheGuru"  napisał w wiadomości grup 
dyskusyjnych:k1num4$1cp$1@news.icpnet.pl...

/*
> Czy bez tworzenia ACTIVITY w Eclipse zobaczę jakieś efekty na
> urządzeniu? Otworzy się jakieś okienko czy coś, w którym zobaczę choć
> jakiś tekst na początek?

Afaik nie, Activity reprezentuje właśnie jedno okienko.
*/

czy muszę zaimprtować którąś z klas i po przez nią pisać w polach 
tekstowych??

import android.app.Activity;
import android.graphics.Canvas;
import android.os.Bundle;
import android.widget.Button;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;



gdzie znajdę jakieś tutoriale lub kursy, w których od początku zobaczę jak 
używać activity? 
Re: początki lamera ;-)
#153563
Author: MarekF
Date: Thu, 30 Aug 2012 18:48
51 lines
3362 bytes
Użytkownik "TheGuru" <theguru@wp.pl> napisał w wiadomości 
news:k1o5g8$72u$1@news.icpnet.pl...
>
>
> Użytkownik "TheGuru"  napisał w wiadomości grup 
> dyskusyjnych:k1num4$1cp$1@news.icpnet.pl...
>
> /*
>> Czy bez tworzenia ACTIVITY w Eclipse zobaczę jakieś efekty na
>> urządzeniu? Otworzy się jakieś okienko czy coś, w którym zobaczę choć
>> jakiś tekst na początek?
>
> Afaik nie, Activity reprezentuje właśnie jedno okienko.
> */
>
> czy muszę zaimprtować którąś z klas i po przez nią pisać w polach 
> tekstowych??
>
> import android.app.Activity;
> import android.graphics.Canvas;
> import android.os.Bundle;
> import android.widget.Button;
> import android.util.Log;
> import android.view.View;
> import android.view.View.OnClickListener;
>
>
>
> gdzie znajdę jakieś tutoriale lub kursy, w których od początku zobaczę jak 
> używać activity?
Witam
znam twoj nick z jakiejs innej grupy dyskusyjnej i czuje jakas sympatie. 
Zaczalem przygode z androidem tydzien temu. Twoje pytania w tym watku sa 
dziwne dla mnie, bo ja juz pisze aplikacje {narazie tylko dwie} ..hehhe w 
nocy mi sie snia te zawiasy "{ }, klasy itd. (Mysle w jezyku jawa) Ale 
spedzam cale dnie na czytaniu jawa oracle, android developmend itd.
Mysle, ze wspolpraca w nauce takich poczatkujacych jak ja, i jak Ty(bo tak 
sie okresliles)moze przyniesc jakies efekty. Moje doswiadczenia to VB 
(bardzo dobrze), java script(bardzo dobrze) PHP(dobrze).
Zeby nie bylo ze js a jawa to cos innego.Jest podobienswo. W js robilem 
funkcje, w jawie robi sie klasy. W VB robilem Type. Wkurza mnie to, ze w 
jawie jest inna konstrukcja wlasciwosci obiektow. I to , ze funkcje maja 
inna nazwe. A metody? W VB bylo np: text1.text="moj tekst". a w jawie 
inaczej set.text...by id..R i cos tam.
Ale mozna sobie z tym poradzic,
OK TheGuru, ja ucze sie samodzielnie, ale mam propozycje wspolpracy w nauce. 
Pewnie nie na forum, bo to sie nazywa "zasmiecanie?" Moze na gg albo nie 
wiem, on line piszemy sobie aplikacje i kombinujemy?
Pozdr
maf
Re: początki lamera ;-)
#153564
Author: TheGuru
Date: Thu, 30 Aug 2012 21:03
5 lines
1680 bytes
//znam twoj nick z jakiejs innej grupy dyskusyjnej i czuje jakas sympatie.

pewnie z grupy foto lub jakiejś turystycznej ;-)
dzięki za ciepłe sowa i kontynuuję na prf. 
Re: początki lamera ;-)
#153566
Author: Arivald
Date: Fri, 31 Aug 2012 07:27
93 lines
4130 bytes
W dniu 2012-08-30 18:48, TheGuru pisze:
>
>
> Użytkownik "TheGuru"  napisał w wiadomości grup
> dyskusyjnych:k1num4$1cp$1@news.icpnet.pl...
>
> /*
>> Czy bez tworzenia ACTIVITY w Eclipse zobaczę jakieś efekty na
>> urządzeniu? Otworzy się jakieś okienko czy coś, w którym zobaczę choć
>> jakiś tekst na początek?
>
> Afaik nie, Activity reprezentuje właśnie jedno okienko.
> */
>
> czy muszę zaimprtować którąś z klas i po przez nią pisać w polach
> tekstowych??
>
> import android.app.Activity;
> import android.graphics.Canvas;
> import android.os.Bundle;
> import android.widget.Button;
> import android.util.Log;
> import android.view.View;
> import android.view.View.OnClickListener;

Otwórz sobie designera Avtivity, (dwuklik na /res/layout/main.xml, czy 
jak tam się u Ciebie nazywa). W palecie komponentów (domyślnie po lewej) 
wybierz "Text Fields". Wewnątrz będzie jeden komponent z wieloma liniami 
tekstu (MultilineText). Łapiesz go myszką, i przeciągasz na Activity. 
Jak już wyląduje, to klikasz go. Pojawi się ramka z małymi kwadracikami 
na rogach i środkach. Złap kwadracik na dole, i pociągnij w dół. 
Komponent zmieni rozmiar.

Po kliknięciu w dowolny komponent, po lewej stronie masz kartę 
"Properties". To edytor właściwości, w którym możesz dostosować różne 
właściwości obiektu.


Ta technika się nazywa RAD (Rapid Application Deveopment) Eclipse za 
Ciebie zrobi wszystkie niezbędne zmiany w plikach.

Potem żeby coś zapisać w takim komponencie:

Do testu wrzuć button (paleta From Widgets). Dostanie on za automatu 
nazwę/id "button1" i na razie go nie zmienimy. W realnej aplikacji 
zawsze się zmienia nazwę żeby opisać do czego teki button służy.
We właściwościach buttona znajdź "On click" i nadaj mu wartość 
"OnButton1Click".

w kodzie Activity zrób zmiany żeby wyglądała tak:

public class TuTwojaNazwaActivity extends Activity {
	
	//widgets
	EditText editText1;
	
	/** Called when the activity is first created. */
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);

		setContentView(R.layout.main);

		//setup widgets
	    	editText1 = (EditText) findViewById(R.id.editText1);
	}
	
	public void OnButton1Click(View view) {
		editText1.append("nowa linia\n");
	}

}


Uruchom aplikację. Kliknij kilka razy w buttona. Działa? ;-)



>
>
>
> gdzie znajdę jakieś tutoriale lub kursy, w których od początku zobaczę
> jak używać activity?

oczywiście u źródła, czyli http://developer.android.com/index.html

A konkretniej kurs programowania:
http://developer.android.com/training/index.html

Dokładnie opisane krok po kroku.

-- 
Arivald
Re: początki lamera ;-)
#153565
Author: Arivald
Date: Fri, 31 Aug 2012 07:33
69 lines
3968 bytes
W dniu 2012-08-30 20:48, MarekF pisze:
>
> Użytkownik "TheGuru" <theguru@wp.pl> napisał w wiadomości
> news:k1o5g8$72u$1@news.icpnet.pl...
>>
>>
>> Użytkownik "TheGuru"  napisał w wiadomości grup
>> dyskusyjnych:k1num4$1cp$1@news.icpnet.pl...
>>
>> /*
>>> Czy bez tworzenia ACTIVITY w Eclipse zobaczę jakieś efekty na
>>> urządzeniu? Otworzy się jakieś okienko czy coś, w którym zobaczę choć
>>> jakiś tekst na początek?
>>
>> Afaik nie, Activity reprezentuje właśnie jedno okienko.
>> */
>>
>> czy muszę zaimprtować którąś z klas i po przez nią pisać w polach
>> tekstowych??
>>
>> import android.app.Activity;
>> import android.graphics.Canvas;
>> import android.os.Bundle;
>> import android.widget.Button;
>> import android.util.Log;
>> import android.view.View;
>> import android.view.View.OnClickListener;
>>
>>
>>
>> gdzie znajdę jakieś tutoriale lub kursy, w których od początku zobaczę
>> jak używać activity?
> Witam
> znam twoj nick z jakiejs innej grupy dyskusyjnej i czuje jakas sympatie.
> Zaczalem przygode z androidem tydzien temu. Twoje pytania w tym watku sa
> dziwne dla mnie, bo ja juz pisze aplikacje {narazie tylko dwie} ..hehhe
> w nocy mi sie snia te zawiasy "{ }, klasy itd. (Mysle w jezyku jawa) Ale
> spedzam cale dnie na czytaniu jawa oracle, android developmend itd.
> Mysle, ze wspolpraca w nauce takich poczatkujacych jak ja, i jak Ty(bo
> tak sie okresliles)moze przyniesc jakies efekty. Moje doswiadczenia to
> VB (bardzo dobrze), java script(bardzo dobrze) PHP(dobrze).

> Zeby nie bylo ze js a jawa to cos innego.Jest podobienswo.

Jest podobieństwo. Jak to że każdy (prawie) człowiek ma dwie ręce i dwie 
nogi. Ale Java od JavaScriptu czy PHP rożni się tak że owe podobieństwa 
raczej przeszkadzają niż pomagają.

> W js robilem
> funkcje, w jawie robi sie klasy. W VB robilem Type. Wkurza mnie to, ze w
> jawie jest inna konstrukcja wlasciwosci obiektow. I to , ze funkcje maja
> inna nazwe. A metody? W VB bylo np: text1.text="moj tekst". a w jawie
> inaczej set.text...by id..R i cos tam.

Rada od starego programisty: nie myśl w konkretnym języku. Myśli 
obiektowo, jak obiekty się łączą i działają. Konkretny język to tylko 
implementacja.


> Ale mozna sobie z tym poradzic,
> OK TheGuru, ja ucze sie samodzielnie, ale mam propozycje wspolpracy w
> nauce. Pewnie nie na forum, bo to sie nazywa "zasmiecanie?" Moze na gg
> albo nie wiem, on line piszemy sobie aplikacje i kombinujemy?
> Pozdr
> maf
>

-- 
Arivald
Re: początki lamera ;-)
#153569
Author: TheGuru
Date: Sun, 02 Sep 2012 19:32
43 lines
2367 bytes
Witajcie,
przerobiłem trochę tutoriali i chciałbym od początku zrozumieć co i jak i 
używać dobrego języka.
Pozwólcie że napiszę jak to rozumiem.

public class StartingPoint extends Activity {


int counter; // deklaracja zmiennej typu całkowitego
Button add, sub; // deklaracja zmiennej typu Button.
TextView display; // deklaracja zmiennej typu TextView.
// Czy typ Button i TekstView to wewnętrzny typ androida nazwa zastrzeżona??




counter = 0; // inicjacja zmiennej
add = (Button) findViewById(R.id.bAdd); // system odnajduje element ekranu o 
id bAdd wymusza jego typ jako Button i przypisuje do zmiennej add. od tej 
chwili add jest odwołaniem do konkretnego buttona. Co to jest "R" ?

/*
a tutaj nie do końca wiem co się dzieje
ta metoda jest wywoływana po kliknieciu na button add.
co się dzieje po kliknięciu? Tworzona jest nowa klasa View.OnClickListener() 
w jakim celu??
Metoda onClick (czy to metoda systemowa?) co to za parametry? parametr v 
który jest klasą View? Dlaczego nie jest używany?
*/

add.setOnClickListener(new View.OnClickListener() {


public void onClick(View v) {

counter++;

display.setText("" + counter); // jak to nazwać? metoda setText klasy 
display ?

}

});
Re: początki lamera ;-)
#153570
Author: Arivald
Date: Mon, 03 Sep 2012 07:42
163 lines
6689 bytes
W dniu 2012-09-02 21:32, TheGuru pisze:
> Witajcie,
> przerobiłem trochę tutoriali i chciałbym od początku zrozumieć co i jak
> i używać dobrego języka.
> Pozwólcie że napiszę jak to rozumiem.
>


> public class StartingPoint extends Activity {
>
>
>   int counter; // deklaracja zmiennej typu całkowitego
>   Button add, sub; // deklaracja zmiennej typu Button.
>   TextView display; // deklaracja zmiennej typu TextView.
>   // Czy typ Button i TekstView to wewnętrzny typ androida nazwa zastrzeżona??

Po prosty nazwy klas. jak Activity czy StartingPoint.

>
>
>
>
>   counter = 0; // inicjacja zmiennej

Ważna uwaga: deklaruj zmienne tam gdzie są inicjalizowane.
A raczej odwrotniwe, inicjalizuj zmienne przy deklaracji, z 
zastrzeżeniem żeby nie deklarować/inicjalizować "na zapas". Umieszczaj 
deklaracją w kodzie tam gdzie ona jest potrzebna.

Po drugie, powyższe "zmienne" to są pola klasy. Powinny posiadać 
kwalifikatory dostępu, innaczej dostaną domyślny kwalifikator "package".

cały ten blok powinien wyglądać tak:


   private int counter = 0;
   private Button add = (Button) findViewById(R.id.bAdd);
   private Button sub;
   private TextView display;


Ale nawet to nie jest ok. Chodzi o to że taki kod (zarówno moja jak i 
Twoja wersja) wykonał by się jako racjonalizator klasy jeszcze przed 
wywołaniem konstruktora. I o ile przypisanie wartości w "int counter = 
0" się powiedzie, to jus wywołanie findViewById() nie, bo klasa nie jest 
jeszcze skonstruowana, i nie posiada żadnych widoków.

Dlatego używa się nadpisywania funkcji onCreate, i to jest poprawne 
miejsce inicjalizacji widoków.

Po drugie zmienne proste (POD) takie jak int czy bool są zawsze 
automatycznie inicjalizowane na domyślne wartośći, 0 dla int i false dla 
bool. Nie trzeba ich jawnie inicjalizować na takie wartości (choć można)

Ostatecznie poprawny kod to:

   private int counter;
   private Button add;
   private Button sub;
   private TextView display;


   /** Called when the activity is first created. */
   @Override
   public void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);

     setContentView(R.layout.main);

     //setup widgets
     add = (Button) findViewById(R.id.bAdd);
   }


>   add = (Button) findViewById(R.id.bAdd); // system odnajduje element ekranu o id bAdd wymusza jego typ jako Button i przypisuje do zmiennej add. od tej chwili add jest odwołaniem do konkretnego buttona. Co to jest "R" ?

Nie, nie i nie...

findViewById to metoda (funkcja składowa klasy) klasy Activity, która 
zwraca jeden obiekt typu View z okna powiązanego z Activity.

Klasy Button czy TextView też dziedziczą po View (też są View). Klasa 
View to najbardziej podstawowy przodek wszystkich klas służących do 
budowy interfejsu.

"R" to generowana automatycznie klasa z identyfikatorami obiektów i 
innymi zasobami aplikacji.


Czyli powyższa linia kodu oznacza: Prosimy Activity o zwrócenie obiektu 
klasy View o identyfikatorze którego wartość jest w stałej "R.id.bAdd". 
Zwrócony obiekt View rzucamy na Button (rzut w tym kontekście to zmiana 
typu, w Javie w zasadzie zawsze tylko doprecyzowanie typu), i 
przypisujemy do pola "add" klasy "StartingPoint".

"nie" bo:

a) nie system, a Activity odnajduje.

b) nie tyle "element ekranu", co jeden z obiektów View służących do 
budowy interfejsu.

c) nie "wymusza jego typ", a jedynie upewnia się że ma on pożądany typ.
Zwrócony obiekt View może być dowolnym typem dziedziczącym po View. Rzut 
jest jedynie po to żeby się upewnić że jest to Button. Gcy by nie był, 
to nastąpi wyjątek w czasie wykonania, i przypisanie wartośći nie nastąpi.

>
>   /*
>     a tutaj nie do końca wiem co się dzieje
>     ta metoda jest wywoływana po kliknieciu na button add.
>     co się dzieje po kliknięciu? Tworzona jest nowa klasa View.OnClickListener() w jakim celu??
>     Metoda onClick (czy to metoda systemowa?) co to za parametry? parametr v który jest klasą View? Dlaczego nie jest używany?
>   */
>
>   add.setOnClickListener(new View.OnClickListener() {
>
>     public void onClick(View v) {
>       counter++;
>       display.setText("" + counter); // jak to nazwać? metoda setText klasy display ?
>
>     }
>   }

Tu jest tworzona nowa, anonimowa klasa dziedzicząca po 
View.OnClickListener, której metoda onClick() została nadpisana kodem do 
obsługi zdarzenia. Potem ta klasa jest rejestrowana w widoku "add" 
(buttonie "add") jako listener (obserwator) zdarzenia "on click".

Potem, w momencie kliknięcia przycisku, button wywoła metodę "public 
void onClick(View v)" każdego listenera skojarzonego ze zdarzeniem "on 
click".


Ale to nie jest najwygodniejsza metoda wiązania kodu do zdarzeń. 
Szczególnie jeśli chcemy powiązać kod i zdarzenie statycznie.
Wygodniej jest po prostu dodać metodę o sygnaturze

   public void OnButtonAddClick(View view) {
     ...
   }

a potem we właściwościach buttona "add", właściwość "On click" (OnClick) 
ustawić na "OnButtonAddClick".


Metody z setOnClickListener() używa się w bardziej skomplikowanych 
przypadkach, o których teraz nie będę pisał żeby Ci nie mieszać.


 >       display.setText("" + counter); // jak to nazwać? metoda setText 
klasy display ?

metoda "setText()" obieku "display", który jest instancją klasy TextView.



BTW sugeruję najpierw przeczytanie jakiejś książki o Javie. Tutoriale 
Androidowe zazwyczaj zakładają znajomość Javy.


-- 
Arivald
Re: początki lamera ;-)
#153571
Author: TheGuru
Date: Mon, 03 Sep 2012 09:07
11 lines
1489 bytes
//cały ten blok powinien wyglądać tak:

poczytam i pomyslę

//BTW sugeruję najpierw przeczytanie jakiejś książki o Javie. Tutoriale
//Androidowe zazwyczaj zakładają znajomość Javy.

czytam ale samo czytanie bez konkretnego problemu niewiele daje.

dziekuję za Twój czas. 
Re: początki lamera ;-)
#153572
Author: TheGuru
Date: Fri, 07 Sep 2012 09:09
49 lines
2647 bytes
Witajcie,
zapoznałem się z różnymi Buttonami i różnymi TextViewami. Nareszcie mogę 
pobierać i drukować.
Stanąłem na INTENT.

Chciałbym zmienić ekran Activity po kliknięci na Button.

Napisałem tak :

klawisz4.setOnClickListener(new View.OnClickListener() {
   public void onClick(View v) {
    Intent openDrugieActivity = new 
Intent("com.example.pierwszy.DRUGIEACTIVITY");
    startActivity(openDrugieActivity);
   }
});

i taki fragment Activity :

<activity
            android:name="GlowneActivity"
            android:label="@string/title_activity_glowne" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
</activity>

<activity
            android:name="DrugieActivity"
            android:label="@string/title_activity_drugie" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
</activity>


DrugieActivity.java to klasa obsługująca drugą aktywność.

Kombinowałem z <category android:name  wpisywałem różne kategorie poczynając 
od DEFAULT, WIEV itp. ale po kliknięciu na klawisz zmiany ekranu program się 
wywala.

Nie znalazłem też informacji jak zamknąć Activity, czy też można je tylko 
przełączać?

pozdrawiam
robert
Re: początki lamera ;-)
#153573
Author: Arivald
Date: Sat, 08 Sep 2012 00:55
75 lines
3333 bytes
W dniu 2012-09-07 11:09, TheGuru pisze:
> Witajcie,
> zapoznałem się z różnymi Buttonami i różnymi TextViewami. Nareszcie mogę
> pobierać i drukować.
> Stanąłem na INTENT.
>
> Chciałbym zmienić ekran Activity po kliknięci na Button.
>
> Napisałem tak :
>
> klawisz4.setOnClickListener(new View.OnClickListener() {
>    public void onClick(View v) {
>     Intent openDrugieActivity = new
> Intent("com.example.pierwszy.DRUGIEACTIVITY");

Tak się startuje INNE aplikacje (activity z innej aplikacji).

Jeśli otwierasz wewnątrz aplikacji, to:
Intent openDrugieActivity = new Intent(this, DrugieActivity.class);

To pozwoli systemowi na automatyczne ustawienie hierarchii (parametr 
context => this), więc jak user zamknie nowe Activity to system będzie 
wiedział do którego ma wrócić.



>     startActivity(openDrugieActivity);
>    }
> });
>
> i taki fragment Activity :
>
> <activity
>             android:name="GlowneActivity"
>             android:label="@string/title_activity_glowne" >
>             <intent-filter>
>                 <action android:name="android.intent.action.MAIN" />
>                 <category
> android:name="android.intent.category.LAUNCHER" />
>             </intent-filter>
> </activity>
>
> <activity
>             android:name="DrugieActivity"
>             android:label="@string/title_activity_drugie" >
>             <intent-filter>
>                 <action android:name="android.intent.action.MAIN" />
>                 <category
> android:name="android.intent.category.LAUNCHER" />
>             </intent-filter>
> </activity>
>
>
> DrugieActivity.java to klasa obsługująca drugą aktywność.
>
> Kombinowałem z <category android:name  wpisywałem różne kategorie
> poczynając od DEFAULT, WIEV itp. ale po kliknięciu na klawisz zmiany
> ekranu program się wywala.
>
> Nie znalazłem też informacji jak zamknąć Activity, czy też można je
> tylko przełączać?

Zazwyczaj system to robi (bo wystartowało inne Activity, albo user 
nacisnął "back"), ale jak już musisz sam to Activity.finish().

więcej tu:
http://developer.android.com/training/basics/activity-lifecycle/index.html

> pozdrawiam
> robert
>
>

-- 
Arivald
Re: początki lamera ;-)
#153574
Author: TheGuru
Date: Sat, 08 Sep 2012 12:28
51 lines
2838 bytes
/*
> klawisz4.setOnClickListener(new View.OnClickListener() {
>    public void onClick(View v) {
>     Intent openDrugieActivity = new
> Intent("com.example.pierwszy.DRUGIEACTIVITY");
Tak się startuje INNE aplikacje (activity z innej aplikacji).
Jeśli otwierasz wewnątrz aplikacji, to:
Intent openDrugieActivity = new Intent(this, DrugieActivity.class);
*/

Dzięki za odpowiedź.

Wpisałem wg Twojej propozycji i Eclipse zgłasza taki błąd :

The constructor Intent (new onClickListner(){}), Clas <DrugieActivity> ) is 
undefined.


z tutorialu przepisałem, bez zrozumienia, coś takiego :
Class noweAvtivity = Class.forName("com.example.pierwszy.drugieactivity");

ale nie pomogło ;-(
Nie rozumiem dlaczego. Przepisuję z tutorialu i lipa.


/*
> Nie znalazłem też informacji jak zamknąć Activity, czy też można je
> tylko przełączać?

Zazwyczaj system to robi (bo wystartowało inne Activity, albo user
nacisnął "back"), ale jak już musisz sam to Activity.finish().
*/

w tutorialowym programie otwiera się po sobie kilka okienek i dopiero 
klikając [WSTECZ] zamykam je.
Myślę, że otwarcie iluś tam kolejnych okienek może zapełnić pamięć.


//więcej tu: 
http://developer.android.com/training/basics/activity-lifecycle/index.html

zaglądam ale jeszcze nie jestem na tym etapie by zrozumieć wszystko co 
czytam ;-)

tak apropos to przejrzałem wiele książek i wszyscy skupiają się na for, if, 
case, klasach, metodach, dziedziczeniu, przeciążaniu ....
nie ma książki o klasach systemowych i ich metodach jak otworzyć activity i 
cokolwiek z nim zrobić.

pozdrawiam
robert
Re: początki lamera ;-)
#153575
Author: Arivald
Date: Sat, 08 Sep 2012 15:37
76 lines
4164 bytes
W dniu 2012-09-08 14:28, TheGuru pisze:
> /*
>> klawisz4.setOnClickListener(new View.OnClickListener() {
>>    public void onClick(View v) {
>>     Intent openDrugieActivity = new
>> Intent("com.example.pierwszy.DRUGIEACTIVITY");
> Tak się startuje INNE aplikacje (activity z innej aplikacji).
> Jeśli otwierasz wewnątrz aplikacji, to:
> Intent openDrugieActivity = new Intent(this, DrugieActivity.class);
> */
>
> Dzięki za odpowiedź.
>
> Wpisałem wg Twojej propozycji i Eclipse zgłasza taki błąd :
>
> The constructor Intent (new onClickListner(){}), Clas <DrugieActivity> )
> is undefined.
>

No żesz... przecież muwółen żebyś nie używał "add.setOnClickListener(new 
View.OnClickListener() { ...", tylko zwykłych " public void 
OnButton1Click(View view) {..." plus wpisanie nazwy w XMLu. Mniej 
kłopotów z taką formą obsługi eventu.

we frazie "Intent openDrugieActivity = new Intent(this, 
DrugieActivity.class);", pierwszy parametr (ja użyłem "this") to powinno 
być aktualne Activity, przynajmniej w tym programie.


> z tutorialu przepisałem, bez zrozumienia, coś takiego :
> Class noweAvtivity = Class.forName("com.example.pierwszy.drugieactivity");
>
> ale nie pomogło ;-(
> Nie rozumiem dlaczego. Przepisuję z tutorialu i lipa.
>
>
> /*
>> Nie znalazłem też informacji jak zamknąć Activity, czy też można je
>> tylko przełączać?
>
> Zazwyczaj system to robi (bo wystartowało inne Activity, albo user
> nacisnął "back"), ale jak już musisz sam to Activity.finish().
> */
>
> w tutorialowym programie otwiera się po sobie kilka okienek i dopiero
> klikając [WSTECZ] zamykam je.
> Myślę, że otwarcie iluś tam kolejnych okienek może zapełnić pamięć.

Nie, bo Activity które trafia na spód jest wstrzymywane, może być nawet 
całkiem zatrzymane i wywalone z pamięci. Po naciśnięciu "back", system 
zamknie to nowe, a stare przywróci (resume lub ponowny start).
A stan pomiędzy uruchomieniami/wznowieniami należy zależy zachować w 
Bundle. W ogóle czytałeś link który Ci podałem?

>
> //więcej tu:
> http://developer.android.com/training/basics/activity-lifecycle/index.html
>
> zaglądam ale jeszcze nie jestem na tym etapie by zrozumieć wszystko co
> czytam ;-)
>
> tak apropos to przejrzałem wiele książek i wszyscy skupiają się na for,
> if, case, klasach, metodach, dziedziczeniu, przeciążaniu ....

Bo to podstawa programowania w Javie. Dopóki teko nie umiesz to Nie 
próbuj dalej. A gdybyś umiał, to nie miał być problemu z Intent-em, jest 
przecież dokładnie opisany.

> nie ma książki o klasach systemowych i ich metodach jak otworzyć
> activity i cokolwiek z nim zrobić.

Jeszcze raz http://developer.android.com/training/basics/ Tam nic o 
Javie, z góry zakładają że ją znasz.

-- 
Arivald
Re: początki lamera ;-)
#153576
Author: TheGuru
Date: Sun, 23 Sep 2012 12:57
10 lines
1440 bytes
Witajcie,
tyle się naczytałem o ogromnej liczbie klas i bibliotek do javy.
Czy istnieje klasa interpretująca równania matematyczne, z której mógłbym 
skorzystać?

Chodzi mi rozwiązanie, które analizuje wysłany string np sin(x)*2+ln(x)+x^2 
i odpowiada jego wartością ewentualnie zwraca  błąd.

pozdrawiam
rober
Re: początki lamera ;-)
#153577
Author: TheGuru
Date: Tue, 02 Oct 2012 11:43
55 lines
2405 bytes
Witajcie,
z pisaniem idzie mi coraz lepiej ale...;-)

mam kłopot z eleganckim przesyłaniem danych między klasami.

Mam taką klasę :

public class MainActivity {
    String uwaga = "udało się";
    static String wFunkcji;

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main_activity);
        funkcja = (EditText) findViewById(R.id.etFunkcja);
    }

    public void onClick(View v) {
        wFunkcji = funkcja.getText().toString();
        uwaga = wFunkcji;
    }
}

i drugą klasę



public class RysujWykres {
    MainActivity mainActiv = new MainActivity();
    protected void onDraw(Canvas canvas) {
    tempS = mainActiv.uwaga;
    }
}

dlaczego dostaję wartość z deklaracji a nie z przypisania w metodzie
onClick.

uwaga deklaruję i przypisuję w głównym ciele klasy aby była dostępna w całej
klasie, i jest i działa w tej klasie.

Próbowałem tworzyć metody getUwaga(); i w drugiej klasie pisałem

tempS = mainActiv.getUwaga();

ale bez efektu

zawsze dostaję wartość null

ps.
static String wFunkcji;
tak zrobiłem bo tak działa ale chciałbym unikać zmiennych globalnych... 
tylko jak

pozdrawiam
robert
Re: początki lamera ;-)
#153578
Author: Arivald
Date: Tue, 02 Oct 2012 19:52
112 lines
3777 bytes
W dniu 2012-10-02 13:43, TheGuru pisze:
> Witajcie,
> z pisaniem idzie mi coraz lepiej ale...;-)
>
> mam kłopot z eleganckim przesyłaniem danych między klasami.
>

Co to znaczy "eleganckim"?

Są różna potrzeby, i różne rozwiązania.


> Mam taką klasę :
>
> public class MainActivity {
>     String uwaga = "udało się";
>     static String wFunkcji;
>
>     protected void onCreate(Bundle savedInstanceState) {
>         super.onCreate(savedInstanceState);
>         setContentView(R.layout.main_activity);
>         funkcja = (EditText) findViewById(R.id.etFunkcja);
>     }
>
>     public void onClick(View v) {
>         wFunkcji = funkcja.getText().toString();
>         uwaga = wFunkcji;
>     }
> }
>
> i drugą klasę
>
>
>
> public class RysujWykres {
>     MainActivity mainActiv = new MainActivity();
>     protected void onDraw(Canvas canvas) {
>     tempS = mainActiv.uwaga;
>     }
> }
>
> dlaczego dostaję wartość z deklaracji a nie z przypisania w metodzie
> onClick.
>
> uwaga deklaruję i przypisuję w głównym ciele klasy aby była dostępna w
> całej
> klasie, i jest i działa w tej klasie.
>
> Próbowałem tworzyć metody getUwaga(); i w drugiej klasie pisałem
>
> tempS = mainActiv.getUwaga();
>
> ale bez efektu
>
> zawsze dostaję wartość null
>
> ps.
> static String wFunkcji;
> tak zrobiłem bo tak działa ale chciałbym unikać zmiennych globalnych...
> tylko jak
>

Namotane... i z Twojego opisu wynika że nawiedzone, bo dzieją się rzeczy 
niemożliwe ;-)

Możesz wystawić kod do ściągnięcia? Zobaczył bym o co biega.
Możesz na priv, wywal NOSPAM z adresu.

Z oglądu kodu podejrzewam że nie odróżniasz klasy od jej instancji... Że 
wewnątrz RysujWykres tworzysz drugą instancję MainActivity, zamiast się 
dobrać do pierwszej. Dlatego zmienna statyczna klasy działa, a składowa nie.

Spróbuj tak (sposób niekoniecznie najlepszy, ale wystarczający przy 
założeniu że powinna istnieć tylko jedna instancja klasy MainActivity w 
tym samym czasie):

public class MainActivity {
   ...

   private String uwaga = "udało się";
   public String getUwaga() {
     return uwaga;
   }

   private static MainActivity instance;
   public static MainActivity getInstance() {
     return instance;
   }

   protected void onCreate(Bundle savedInstanceState) {
     instance = this;
     ....
   }

   protected void onDestroy(Bundle savedInstanceState) {
     instance = nil;
     ....
   }


i potem

public class RysujWykres {

     protected void onDraw(Canvas canvas) {
       tempS = MainActivity.getInstance().getUwaga();
     }
}


-- 
Arivald
Jak nadpisać preferencje
#153579
Author: theguru
Date: Thu, 15 Nov 2012 08:04
26 lines
1807 bytes
Witajcie,
w mojej aplikacji używam preferencji. Użytkownik może wprowadzić liczbę z 
zakresu 0-32.
Niestety w EditText użytkownik może wprowadzić większą liczbę.
Nie mam kłopotu z obsługa tego w programie, jeśli użytkownik wprowadzi 
większą liczbę przypisuję do wartości maksymalną dozwoloną.

Chciałbym jedna aby preferencje przechowywały wartość prawidłową.

zrobiłem tak :
SharedPreferences getPrefs = 
PreferenceManager.getDefaultSharedPreferences(getBaseContext());

String testSTR = getPrefs.getString("dJed", "2");
int dJ = Integer.parseInt(testSTR);
if (dJ > 32) {
    dJ = 32;
    getPrefs.edit().putString("dJed", "32");
    getPrefs.edit().commit();
}

niestety wartość nie jest nadpisywana :-(
Jak to zrobić poprawnie?

pozdrawiam
robert 
preent screen
#153580
Author: theguru
Date: Thu, 15 Nov 2012 08:30
11 lines
1203 bytes
Witajcie,

jeszcze jeden problem ;-)

Używam ekranu graficznego opartego o klasę SurfaceView.

Jak zapisać ten ekran do pliku graficznego?


pozdrawiam
robert 
Re: preent screen
#153581
Author: TheGuru
Date: Sat, 17 Nov 2012 21:03
21 lines
1596 bytes

//Witajcie,
//jeszcze jeden problem ;-)
//Używam ekranu graficznego opartego o klasę SurfaceView.
//Jak zapisać ten ekran do pliku graficznego

poczytałem i napisałem takie coś

canvas = ourHolder.lockCanvas();
bitmap = Bitmap.createBitmap(szerokoscEkranu, 
wysokoscEkranu,Bitmap.Config.ARGB_8888);
ourHolder.unlockCanvasAndPost(canvas);

plik się tworzy ale pusty tzn jednokolorowy.
myślałem, że nie ten ekran buforowy się zgrywa ale nie.

gdzie może być przyczyna?

pozdrawiam
robert 
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads