Wątek zablokowany 2017-11-27 18:33 przez Koziołek.

Android studio, aplikacja notatnik - skonfigurowanie przycisku

0

Wiem, że pewnie powinienem najpierw dogłębnie nauczyć się javy, ale wierzę, że dam radę nauczyć się jej na przykładach.

Wybrałem template z basic activity, i moim pierwszym celem byłoby sprawienie, żeby ten przycisk działał. Jak na razie chodzi mi o to, żeby otworzyło się okno z polem tekstowym, tam coś wpisuję, po czym notatka zapisuje się na ekranie głównym (innego nie ma).
Może na razie zacznijmy od samego przycisku który wywołuje pole tekstowe, bo pewnie zrobienie tego zabierze trochę czasu. Znalazłem bardzo ciekawe fragmenty kodu:

Intent myIntent = new Intent(CurrentActivity.this, NextActivity.class); myIntent.putExtra("key", value); //Optional parameters CurrentActivity.this.startActivity(myIntent);

@Override protected void onCreate(Bundle savedInstanceState) { Intent intent = getIntent(); String value = intent.getStringExtra("key"); //if it's a string you stored. }

<activity android:label="@string/app_name" android:name="NextActivity"/> (do AndroidManifest)

Aczkolwiek nie wiem jak mam to odnieść do swojej sytuacji, mimo że je rozumiem (najpierw chcemy coś zrobić, potem to odbieramy).

Z góry dziękuję za wszelką pomoc.

0

Może na razie zacznijmy od samego przycisku który wywołuje pole tekstowe

Chcąc zrobić to tak, aby wpisywanie treści notatki odbywało się w innej aktywności, stwórz nową, nazywając ją np. AddNoteActivity, w jej układzie dodaj jakiś EditText i ewentualnie inne kontrolki według uznania, a skoro wybrałeś Basic Activity podczas tworzenia projektu, to w głównej aktywności możesz użyć dodanego automatycznie FloatingActionButton:

FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
        fab.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                startActivity(new Intent(MainActivity.this, AddNoteActivity.class));
            }
        });
0

No jeśli trzeba jednak przekazać tekst z drugiego activity do pierwszego, to raczej startActivityForResult i potem override onActivityResult w głównym.

0

Dziękuję bardzo za odpowiedź, już teraz to widzę. Mogłem się szybciej domyślić że przecież ten przycisk już będzie miał gotowy fragment kodu.

Ale jednak tutaj mnie znowu zbiliście z tropu. Czy ten kod Pana sc4recrow jest poprawny? Tzn. jest (właśnie sobie przypomniałem poradniki), ale czy on będzie to poprawnie zapisywał, bo tutaj mówicie że nie.

Edit

I przy okazji posypał mi się android studio. Tutaj odpadam całkiem bo na to poradników nie ma. Nazwa aplikacji nie wyświetla się na górze, samo z siebie tak się zrobiło. Co prawda wystarczy wejść w select theme i tam zmienić na to co było wcześniej. Tylko pytanie co było wcześniej. Jak nastawiam po prostu AppTheme to ten pasek zajmuje 1/4 ekranu, a tak być nie powinno. Otworzyłem nawet starą aplikacje gdzie ustawienia są identyczne i tam działa, tutaj nie. Stworzenie nowego projektu nic nie daje.
Najlepiej dam screena: stara aplikacja, działa dobrze http://wrzuc.se/i/5a1334ae55ff9 , każda nowa aplikacja, działa źle http://wrzuc.se/i/5a1334b8929c2

0
Major303 napisał(a):

stara aplikacja, działa dobrze http://wrzuc.se/i/5a1334ae55ff9 , każda nowa aplikacja, działa źle http://wrzuc.se/i/5a1334b8929c2

Ale co ci działa źle? Masz tak, jak ustawiłeś kontrolki. Tam wszystko jest dobrze.

0

Nic nie ustawiałem. Trochę pomieszałem w aplikacji (w kodzie i w nowych elementach) i stwierdziłem że zrobię nową (ale pasek działał), i teraz każda nowa z basic activity ma ogromny górny pasek. Każda inna działa. Jak na razie przeinstalowuję na czysto android studio.

0

Bump

Reinstall nie pomógł. Pewnie format by pomógł, ale może dam radę to jakoś przywrócić. Czy jakiś weteran tego oprogramowania jest mi w stanie powiedzieć jak ten pasek zmniejszyć do stanu poprzedniego? Do tego http://wrzuc.se/i/5a1334ae55ff9 z tego http://wrzuc.se/i/5a1334b8929c2

0

A przy reinstalacji dałeś żeby używało ustawień użytkownika z poprzedniej wersji? I tak btw, skoro takie coś dzieje Ci się tylko w tym jednym przypadku, to przecież możesz używać np. Empty Activity i dodawać sobie potrzebne elementy, prawdopodobnie jest to nawet lepszy wybór podczas nauki.

0

Czysta instalacja, potraktowana jeszcze ccleanerem i ręcznie usuwałem pozostałości z dokumentów i appdata. Niby dodanie przycisku jest rozwiązaniem (bo ten projekt dodaje tylko kilka linijek kodu które i tak są na necie), ale tak jednak być nie powinno.

Edit

Action bar jest 2 razy większy, bo jak wybieram opcję "brak" to dalej się wyświetla. Tutaj jest problem, nie wiem jak go rozwiązać.

0

To jest tylko na podglądzie, czy w aplikacji uruchomionej jest już dobrze

0

Aplikacja po zainstalowaniu wygląda poprawnie. Niby mógłbym to w takim razie olać, ale ten pasek blokuje mi część ekranu w edytorze, więc gotowa aplikacja będzie miała ucięty potem kawałek po instalacji.

Jak do jutra nic nie znajdę to po prostu będę startował z empty activity. Na szczęście przycisk to kilka linijek kodu. Ew. kupie pendrive i postawie na nim czysty system pod programowanie.

Edit

W drugim pliku xml jest toolbar, który nigdy wcześniej się nie tworzył. Jego usunięcie naprawia problem na pc, ale teraz ze strony smartfona jest problem, bo tam paska nie ma. Czyli ogółem dalej jesteśmy w tym samym miejscu.
Czyli dobrze że nie robiłem formata, bo to pewnie da się ogarnąć, ale nie mam pojęcia jak.

0

Aktualnie się poddaje, więc próbuję ręcznie stworzyć ten projekt, ale niestety android studio znów nie zawodzi. Nie rozumie co do niego mówię http://wrzuc.se/images/5a195695609f6.png

Edit

Zmiana planów. Za bardzo sobie utrudniam życie. Stworzenie basic activity i nie dotykanie jej pozwalałoby mi stworzenie mojej aplikacji i tak, bo pasek wyświetla się na telefonie dobrze, a z perspektywy pcta i tak nie mam zamiaru w niego ingerować. Niby tak być nie powinno i potencjalnie może mi to kiedyś przeszkadzać, ale wtedy powinienem już lepiej rozumieć kod, a on akurat działa zawsze. (np. nie wyświetla mi się nazwa ale w kodzie ogarnąłem jak ją edytować).

Idźmy dalej. Jak zapisać naszą notatkę na ekranie głównym?

Edit

Ale ten wasz startActivityForResult nie działa http://wrzuc.se/images/5a195abc10764.jpg

0

To zrób sobie po swojemu, skoro "nasze" ci nie działa. Nie zadałeś sobie trudu ani przeczytania wygenerowanego błędu, ani zajrzenia do dokumentacji. Albo jesteś naprawdę głupi (a wtedy odpuść sobie programowanie), albo leniwy

0

Szczerze spodziewałem się takich odpowiedzi szybciej. "Wasze nie działa" tzn. "potrzebuję pomocy". Kod błędu przeczytałem i szukam odpowiedzi na internetach, na razie bezskutecznie. Logika podpowiada mi że po prostu android studio tego nie rozumie bo wysyłam tą notatkę na ekran główny, ale jeszcze nie mam kodu odpowiadającego za odbiór.

Zapewne dla niektórych to wygląda na zasadzie "dajcie kod bo nie chce mi się robić samemu", ale tak nie jest. W najgorszym wypadku kod przepisuję, nie kopiuję, i takim sposobem się uczę. Na pewno znajdą się tutaj jakieś pomocne osoby, w sumie już 2 się znalazły.
Ogółem przed zadaniem każdego pytania próbuje samodzielnie rozwiązać problem, jak widzę że nie będzie tak łatwo to zadaję pytanie i dalej szukam rozwiązania. Jeśli dobrze rozumiem kod błędu to chyba mam rozwiązanie, szczególnie że już tutaj podano jak odebrać notatkę, szczegóły budowy funkcji poda mi google.

1

Tu masz wszystko: https://developer.android.com/training/basics/intents/result.html

Po twoich postach widać, że twoja głowa nie potrafi ogarnąć programowania. Po co próbujesz na siłę? Nie potrafisz nawet wyszukać w internecie działającego przykładu. Jedyne co wiesz, to że "Android Studio cię nie rozumie", tyle pojąłeś z komunikatu błędu. Że "Android Studio cię nie rozumie" i nie chce zrobić tego, co byś chciał.

0

Po prostu mówię uproszczonym językiem, jak wam to przeszkadza mogę zacząć mówić fachowo. Niby Java jest trudniejsza od C++ ale skoro rozumiem jedno to dam sobie radę z drugim. A za link dziękuję, na pewno się przyda.
Ale mam pytanie, bo nie wiem czy dobrze myślę. Mam MainActivity czyli menu główne, i AddNoteActivity które jest polem edycji notatki (również basic activity z gotowym przyciskiem). Czy muszę już od razu wstawiać startActivityForResult w MainActivity, czy dopiero w AddNoteActivity? Bo jak by nie patrzeć dopiero w drugiej aktywności wysyłam notatkę na ekran główny, w pierwszym otwieram pole edycji. Prędzej czy później do tego dojdę, ale ktoś coś pewnie wie.
Edit
Wszystko mi mówi że dopiero wysyłamy w AddNoteActivity. W sumie ma to sens.

0

K*wa przecież w linku powyżej masz przykład. Co kiedy wywołać i jak

0

Zablokowane na prośbę autora

1 użytkowników online, w tym zalogowanych: 0, gości: 1