Diskuze: Vstup textu v CanvasView
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.


Zobrazeno 8 zpráv z 8.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.


Opakovaně prosím o nějakou radu. Zkoušel jsem to i na fóru stackoverflow.com, ale ani tam mi zatím nikdo neporadil. Sice jeden pokus o radu přišel, ale bohužel nepoužitelný. Snad se najde někdo tady v Česku, vždyť jsme národ programátorů ! Prosím ! Jinak se nehnu z místa.
Nějak zvláštně tam inicializuješ to edText, měl bys ho IMHO inicializovat stejně jako ten customCanvas v Activity_Pohyb
//místo
edText.findViewById(editText); //které ti způsobuje chybu
// by tuším mělo být
edText = (EditText) findViewById(R.id.editText);
Díky za radu. Opravil jsem inicializaci podle ní. Chybu to sice nehlásí, ale aplikace se bohužel opět zastaví s hláškou: "Unfortunately, Pohyb_Prvku has stoped." na řádku:
Toast.makeText(context,"Název je "+edText.getText().toString(), Toast.LENGTH_SHORT).show();
Takže to zase nedokáže přečíst, co jsem zadal do EditTextu.
Čím víc na to koukám, tím míň jistý si jsem, že chápu o co se
snažíš
Nejsou mi jasné
tyto věci:
K Tým dotazům: nejdřív ten druhý - aplikace vznikla na základě tohoto
příkladu: https://examples.javacodegeeks.com/…vas-example/
Proto je ovládání založeno na metodě onTouchEvent pomocí souřadnic x a y
displeje.
A co se týče toho druhého - přesunul jsem zadání názvu do Activity_Pohyb, a to tak, že jsem inicializoval Button buttUloz, EditText eText a TextView tView a vytvořil metodu getNazev k načtení názvu z CanvasView.
eText = (EditText) findViewById(R.id.editText);
tView = (TextView) findViewById(R.id.textView);
buttUloz = (Button) findViewById(R.id.bUloz);
}
public void ulozNazev(View v) {
if (eText.getVisibility() == INVISIBLE) {
eText.setVisibility(VISIBLE);
buttUloz.setText("potvrď.");
}
else {
eText.setVisibility(INVISIBLE);
buttUloz.setText("ULOŽ");
nazev = eText.getText().toString();
tView.setText(nazev);
customCanvas.ulozNazev();
}
}
public String getNazev() {
return nazev;
}
V CanvasView jsem vytvořil proměnnou mActivityPohyb třídy Activity_Pohyb,
private final Activity_Pohyb mActivityPohyb;
a v konstruktoru ji inicializoval
mActivityPohyb = new Activity_Pohyb();
abych se pomocí mMainActivity.getNazev() dostal k názvu souboru zadanému v MainActivity.
Takže po dotyku na tlačítko "ULOŽ" se zobrazí EditText s výzvou "Napiš název a" popis tlačítka se změní na "potvrď". Když se napíše název souboru a stiskne tlačítko "potvrď", měl by se pak soubor uložit pod zadaným názvem. V textView tView se skutečně zobrazí zadaný název (pro kontrolu), ale jak mi napíše Toast v CanvasView, soubor se uloží pod názvem "null", což znamená, že název se do CanvasView nepřenesl. (Vlastní uložení pod zadaným názvem souboru není ještě napsané - zatím se jen marně pokouším dostat k tomu názvu.)
Abys to mohl případně sám vyzkoušet, posílám Ti v soukromé zprávě
drasticky ořezanou aplikaci (bez vykreslování a ovládání prvků i bez
ukládání a načítání souboru - to všechno teď dělám v CanvasView).
Všechno co potřebuji je zadat název souboru a pod tímto názvem uložit
soubor a pak zase zobrazit seznam uložených souborů, jeden zvolit a načíst
ho.
Zkoušel jsem i intent, ale nepodařilo si mi to, napsalo to
hlášku:"Non-static variable cannot be referenced from a static context" a dál
už jsem nevěděl co s tím.
Omluvám se za velmi pozdní odpověď, ale znáš to - Vánoce
Vidím tam hned jeden velký
problém a sice:
mActivityPohyb = new Activity_Pohyb();
tím přece vytvoříš úplně novou instanci třídy Activity_Pohyb, která nemá s tou původní nic společného. Takže nemůžeš čekat, že EditText v této nové instanci bude něco obsahovat.
Že ti tohle uniklo mne přivádí na myšlenku, že si nejsi ještě tak úplně jistý co se týče objektově orientovaného programování, takže bych ti poradil nejprve si to pořádně projít, <a href='https://www.itnetwork.cz/java/oop'>místní tutoriály</a> jsou velmi solidní a pak teprve se pouštět do psaní aplikace.
Ahoj Atramente,
pozdě, ale přece odepisuji. Tvůj podnět mne zaujal, i když přímo můj
problém nevyřešil. I tak díky. Nakonec jsem to vyřešil úplně jinak.
Vytvořil jsem si přímo ve třídě CanvasView jednak jednoduchou klávesnici
pro zadávání názvu souboru k uložení, jednak scrollovací seznam pro
výběr souboru k načtení. Funguje to perfektně.
Zobrazeno 8 zpráv z 8.