• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Sprawdzanie tekstu po klikniecu na przycisk - Android Studio

Object Storage Arubacloud
0 głosów
472 wizyt
pytanie zadane 23 kwietnia 2019 w Android, Swift, Symbian przez Paweł Szewczyk Obywatel (1,410 p.)

Obecnie kod wywala aplikacje po naciśnięciu przycisku czy wie ktoś jak można to naprawić? Moim planem jest to, aby ten program po wpisaniu przez usera sprawdzał tekst i jeśli tekst będzie taki sam jak dana zmiennną z tablicy to zmieni aktywnosc na End.java po zmianie aktywności wysłał flagę true/false do pliku End.java

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@android:color/holo_orange_dark"
    tools:context=".Start">

    <Button
        android:id="@+id/check"
        android:layout_width="420dp"
        android:layout_height="112dp"
        android:layout_marginBottom="160dp"
        android:background="@android:color/holo_orange_light"
        android:text="sprawdz"
        android:textAlignment="center"
        android:textSize="40sp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="1.0"
        app:layout_constraintStart_toStartOf="parent" />

    <TextView
        android:id="@+id/word_random"
        android:layout_width="0dp"
        android:layout_height="80dp"
        android:layout_marginTop="32dp"
        android:background="@android:color/holo_green_light"
        android:text="@string/textview"
        android:textAlignment="center"
        android:textSize="24sp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        tools:ignore="MissingConstraints" />

    <EditText
        android:id="@+id/user_word"
        android:layout_width="0dp"
        android:layout_height="62dp"
        android:layout_marginTop="64dp"
        android:autofillHints=""
        android:background="@android:color/white"
        android:contentDescription="słowo"
        android:text=""
        android:ems="10"
        android:inputType="textPersonName"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/word_random"
        tools:ignore="MissingConstraints" />
</android.support.constraint.ConstraintLayout>
package com.example.instalingv3;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class Start extends AppCompatActivity {

    //public final String complit="Gratulacje";
    //public final String fail="Niestety Nie";
    public String resolt;
    private int loop = 19;
    private int random = 81;
    private String[] rand_same = new String[loop + 1];
    private String user;
    private int[] rand = new int[loop + 1];
    //private Scanner scanner = new Scanner(System.in);
    private int[] miss = new int[loop + 1];
    private int m = 0;
    private int i = 0;
    private int j = 0;
    private boolean p;

    private String[] word = new String[]{
            "0. word_ang - word_pl\n" + "1. gap year / take a gap year   -   rok przerwy po ukończeniu szkoły średniej\n" +
                    "2. safety course   -   kurs zasad bezpieczeństwa\n" + "3. increase   -   zwiększać się (o ilości/jakości)\n" +
                    "4. decrease   -   zmniejszać się (o ilości/jakości)\n" +
                    "5. within walking distance   -   w odległości, którą można pokonać pieszo\n" +
                    "6. mention   -   wspomnieć o czymś\n" + "7. overland   -   drogą lądową / naziemny\n" +
                    "8. memorable   -   niezapomniany/ godny zapamiętania\n" +
                    "9. sign up with   -   zapisać się/zaangażować/związać się z \n" +
                    "10. deliverer   -   doręczyciel/dostawca\n" + "11. paragliding   -   paralotnia\n" + "12. placement   -   położenie/lokalizacja\n" +
                    "13. research   -   badania naukowe\n" + "14. expences   -   wydatki\n" + "15. cruise ship   -   statek rejsowy\n" +
                    "16. on board   -   na pokładzie\n" + "17. off the coast   -   z daleka od brzegu\n" + "18. available   -   dostępne\n" +
                    "19. working hours   -   godziny pracy\n" + "20. deal with   -   radzić sobie z\n" + "21. counsellor   -   doradca/opiekun\n" +
                    "22. freelance   -  pracować jako wolny strzelec\n" + "23. call back   -   oddzwonić później\n" + "24. take on   -   zatrudniać\n" +
                    "25. hold a certificate   -   posiadać dyplom\n" + "26. put through   -   połączyć przez telefon\n" + "27. flood   -   powódź\n" +
                    "28. volcanic eruption   -   wybuch wulkanu\n" + "29. drought   -   susza\n" + "30. pollution   -  zanieczyszczenie\n" +
                    "31. earthquake   -   trzęsienie ziemi\n" + "32. pump out   -   wypompowywać/emitować\n" + "33. toward   -   w kierunku\n" +
                    "34. grow   -  rosnąć/uprawiać\n" + "35. canoe   -   kajak\n" + "36. fireworks   -   fajerwerki\n" +
                    "37. light up   -  rozświetlić\n" + "38. sheke   -  trząść się\n" + "39. fall off   -   spadać/odpadać\n" +
                    "40. twister   -   tornado/trąba powietrzna\n" + "41. calm   -   spokojny/nieporuszony\n" +
                    "42. weatherman   -   prezenter pogody\n" + "43. strike   -   uderzyć/nadejść/dopaść\n" +
                    "44. pray   -   modlić się\n" + "45. prayer   -   modlitwa\n" + "46. put down   -   wpisywać/kłaść\n" +
                    "47. huge   -   ogromny/olbrzymi\n" + "48. directly   -  bezpośrednio\n" + "49. unexpected   -   nieoczekiwany\n" +
                    "50. expected   -   oczekiwany\n" + "51. chase   -   gonić/ścigać\n" +
                    "52. awake   -   obudzony/przebudzony/obudzić/przebudzić się\n" +
                    "53. prediction   -   przewidywanie\n" + "54. predict   -   przewidywać\n" +
                    "55. spontaneous decision   -   decyzja spontaniczna\n" + "56. global warming   -   globalne ocieplenie\n" +
                    "57. rising level   -   podnoszący się poziom\n" +
                    "58. cover   -   przykrywać/pokrywać/przykrywa/pokrywa (czasownik i rzeczownik)\n" + "59. glacier   -   lodowiec\n" +
                    "60. well   -   studnia\n" + "61. cause   -   powodować\n" + "62. precious   -   drogocanny\n" +
                    "63. collect donations   -   zbierać datki\n" + "64. fossil fuel   -   paliwo kopalne\n" +
                    "65. ice cap   -   pokrywa lodowa\n" + "66. blanket   -   koc\n" + "67. shortage   -   brak/niedobór\n" +
                    "68. leak   -   przeciekać/wyciek\n" + "69. dispose of   -   unieszkodliwić/uporać się z\n" +
                    "70. dump   -   skład/zrzut\n" + "71. breed   -   rasa/gatunek\n" + "72. die out   -   wymrzeć/wyginąć\n" +
                    "73. scarce   -   rzadki/mało spotykany\n" + "74. look for   -   szukać\n" + "75. look after   -   opiekować się\n" +
                    "76. cub   -   kocię/młode\n" + "77. cuddly   -   milutki\n" + "78. fierce-looking   -   wyglądający groźnie\n" +
                    "79. habitat   -   środowisko/miejsce występowania\n" + "80. in case of   -   w razie/jeśli wystąpi\n"
    };
    private String[] row_spliter = new String[random];
    private String[] word_pl = new String[row_spliter.length];
    private String[] word_ang = new String[row_spliter.length];


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_start);

        for (int i = 0; i <= random - 1; i++) {
            String[] split_n = word[0].split("\n");
            for (int j = 0; j <= random - 1; j++) {
                row_spliter[j] = split_n[j];
            }
        }
        for (int i = 0; i <= random - 1; i++) {
            row_spliter[i] = row_spliter[i].replace(i + ". ", "");
        }
        String[][] wordsArray = new String[2][row_spliter.length];
        for (int i = 0; i <= row_spliter.length - 1; i++) {
            String[] word_split = row_spliter[i].split(" - ");
            for (int j = 0; j < word_split.length; j++) {
                wordsArray[j][i] = word_split[j];
            }
        }
        for (int i = 0; i <= row_spliter.length - 1; i++) {
            word_ang[i] = wordsArray[0][i];
            word_pl[i] = wordsArray[1][i];
            if (word_ang[i].contains("/")) {
                word_ang[i] = word_ang[i].substring(0, word_ang[i].indexOf("/"));
            }
            while (word_ang[i].endsWith(" ") || (word_pl[i].startsWith(" "))) {
                if (word_ang[i].endsWith(" ")) {
                    word_ang[i] = word_ang[i].substring(0, word_ang[i].length() - 1);
                }
                if (word_pl[i].startsWith(" ")) {
                    word_pl[i] = word_pl[i].replaceFirst(" ", "");
                }
            }
        }
        /////////////////////////////////////////////////////////////////////////////
        int[] rand_back = new int[loop + 1];
        for (int i = 0; i <= loop; i++) {
            rand[i] = (int) (Math.random() * row_spliter.length + 1);
        }
        for (int i = 0; i <= loop; i++) {
            rand_back[i] = rand[i];
        }
        for (int i = 0; i <= loop; ) {
            for (int j = 0; j <= loop; j++) {
                if ((rand[i] == rand_back[j]) && (j != i)) {
                    rand[j] = (int) (Math.random() * row_spliter.length + 1);
                }
                if (j == loop) {
                    j = 0;
                    i++;
                }
                if (i == loop) {
                    break;
                }
            }
            if (i == loop) {
                break;
            }
        }

        TextView word_random = (TextView) findViewById(R.id.word_random);
        word_random.setText(word_pl[rand[i]] + " " + i);
        checkingWord();

    }

    String user_word_string = "";
    boolean checking;

    private void checkingWord() {
        Button check = (Button) findViewById(R.id.check);
        EditText user_word = (EditText) findViewById(R.id.user_word);
        user_word_string = user_word.getText().toString();
        i = 0;
        final Start resol = new Start();
        check.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                for (int j = 0; j <= loop; ) {

                    if (word_ang[rand[i]].equalsIgnoreCase(user_word_string)) {
                        i++;
                        j++;
                        p = true;
                        resol.resolt();
                        startActivity(new Intent(Start.this, End.class));
                    } else {
                        miss[i] = rand[i];
                        i++;
                        j++;
                        m++;
                        p = false;
                        resol.resolt();
                        startActivity(new Intent(Start.this, End.class));
                    }
                }
            }
        });


    }

    public void checking_user_word() {
        if (user_word_string.equalsIgnoreCase(word_ang[rand[i]])) {
            checking = true;
        } else {
            checking = false;
        }
    }

    public void resolt() {
        if (word_ang[rand[i]].equals(user_word_string)) {
            resolt = "Gratulacje";
        } else {
            resolt = "Niestety nie";
        }

    }

}

 

komentarz 23 kwietnia 2019 przez KubenQPL Maniak (62,820 p.)
Pokaż powód z Logcata. To co jest na czerwono z niebieskimi odnośnikami do miejsca w kodzie
komentarz 23 kwietnia 2019 przez Paweł Szewczyk Obywatel (1,410 p.)
Nie mam komunikatu o błędzie, emulator się włącza i włącza aplikacje, a gdy kliknę przycisk cala aplikacja się wyłącza do pulpitu emulatora. I mogę znowu włączyć aplikacje i proces się powtarza
komentarz 23 kwietnia 2019 przez KubenQPL Maniak (62,820 p.)
No tak ale w Android studio na dole masz logcat (lub otwórz go skrótem Alt+6), i w nim po crashu masz szczegółowe informacje co się stało (czerwony tekst z niebieskimi odnośnikami)
komentarz 23 kwietnia 2019 przez Paweł Szewczyk Obywatel (1,410 p.)
2019-04-23 10:19:04.460 1655-1668/? E/ActivityManager: ANR in com.android.vending
    PID: 2420
    Reason: Broadcast of Intent { act=android.intent.action.PACKAGE_NEEDS_VERIFICATION dat=file:///data/app/vmdl1139614619.tmp typ=application/vnd.android.package-archive flg=0x10000011 cmp=com.android.vending/com.google.android.vending.verifier.PackageVerificationReceiver (has extras) }
    Load: 0.0 / 0.0 / 0.0
    CPU usage from 23568ms to 0ms ago (2019-04-23 08:18:39.974 to 2019-04-23 08:19:03.263):
      31% 1655/system_server: 6.8% user + 24% kernel / faults: 6302 minor 12 major
      13% 1311/surfaceflinger: 0.3% user + 13% kernel / faults: 6 minor
      13% 2054/com.google.android.apps.nexuslauncher: 3.1% user + 10% kernel / faults: 9249 minor 58 major
      8.5% 1363/netd: 1.4% user + 7.1% kernel / faults: 6244 minor
      9.4% 1738/com.android.systemui: 2.3% user + 7% kernel / faults: 10116 minor 8 major
      4.7% 1816/com.android.phone: 0.9% user + 3.7% kernel / faults: 1176 minor
      0.8% 1445/dhcpclient: 0% user + 0.7% kernel
      2.5% 2019/com.google.android.gms.persistent: 1% user + 1.4% kernel / faults: 4947 minor 174 major
      1.3% 2013/adbd: 0% user + 1.3% kernel / faults: 1504 minor
      1.3% 2039/com.google.android.googlequicksearchbox:interactor: 0.2% user + 1% kernel / faults: 1466 minor 86 major
      1.1% 1251/kworker/0:1H: 0% user + 1.1% kernel
      0.9% 1354/audioserver: 0.1% user + 0.8% kernel / faults: 2 minor
      0.8% 1310/servicemanager: 0.3% user + 0.5% kernel / faults: 1 minor
      0.8% 1337/kworker/u5:1: 0% user + 0.8% kernel
      0.5% 1338/kworker/u5:2: 0% user + 0.5% kernel
      0.8% 1346/jbd2/dm-0-8: 0% user + 0.8% kernel
      0.6% 1721/wpa_supplicant: 0% user + 0.6% kernel / faults: 48 minor
      0.5% 3/ksoftirqd/0: 0% user + 0.5% kernel
      0.4% 1329/dmcrypt_write: 0% user + 0.4% kernel
      0.4% 1495/kworker/0:2: 0% user + 0.4% kernel
      0.2% 6/kworker/u4:0: 0% user + 0.2% kernel
      0.1% 680/kworker/u4:2: 0% user + 0.1% kernel
      0.3% 1833/com.android.settings: 0.1% user + 0.2% kernel / faults: 286 minor 1 major
      0.3% 1353/zygote: 0% user + 0.3% kernel / faults: 1030 minor
      0.2% 1362/mediaserver: 0% user + 0.2% kernel / faults: 159 minor
      0.2% 1977/com.android.deskclock: 0% user + 0.2% kernel / faults: 971 minor 7 major
      0.2% 1//init: 0% user + 0.2% kernel / faults: 9 minor
      0.1% 12/ksoftirqd/1: 0% user + 0.1% kernel
      0% 1355/cameraserver: 0% user + 0% kernel / faults: 132 minor
      0.2% 2090/com.android.printspooler: 0% user + 0.1% kernel / faults: 971 minor 7 major
      0.1% 8/rcu_preempt: 0% user + 0.1% kernel
      0.1% 669/kworker/1:1: 0% user + 0.1% kernel
      0.1% 1364/rild: 0% user + 0.1% kernel / faults: 2 minor
      0% 1801/sdcard: 0% user + 0% kernel / faults: 20 minor
      0.1% 11/migration/1: 0% user + 0.1% kernel
      0.1% 1258/logd: 0% user + 0.1% kernel / faults: 64 minor
      0% 1306/healthd: 0% user + 0% kernel
      0.1% 2067/com.android.keychain: 0% user + 0% kernel / faults: 235 minor
      0% 1512/hostapd: 0% user + 0% kernel / faults: 19 minor
      0% 1722/com.android.inputmethod.latin: 0% user + 0% kernel / faults: 11 minor
      0% 1729/sdcard: 0% user + 0% kernel / faults: 20 minor
      0% 1357/installd: 0% user + 0% kernel
      0% 1361/media.extractor: 0% user + 0% kernel / faults: 21 minor
      0% 1503/ipv6proxy: 0% user + 0% kernel
     +0% 2138/android.process.acore: 0% user + 0% kernel
     +0% 2157/android.process.media: 0% user + 0% kernel
     +0% 2206/com.google.android.googlequicksearchbox:search: 0% user + 0% kernel
     +0% 2272/com.google.process.gapps: 0% user + 0% kernel
     +0% 2343/cmd: 0% user + 0% kernel
     +0% 2360/com.android.defcontainer: 0% user + 0% kernel
     +0% 2403/com.google.android.music:main: 0% user + 0% kernel
     +0% 2420/com.android.vending: 0% user + 0% kernel
    97% TOTAL: 15% user + 52% kernel + 27% iowait + 1.7% softirq
    CPU usage from 145100ms to 145100ms ago (1970-01-01 00:00:00.000 to 1970-01-01 00:00:00.000) with 0% awake:
    0% TOTAL: 0% user + 0% kernel
019-04-23 10:20:38.521 2870-2870/? E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.instalingv3, PID: 2870
    java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.String.equals(java.lang.Object)' on a null object reference
        at com.example.instalingv3.Start.resolt(Start.java:183)
        at com.example.instalingv3.Start$1.onClick(Start.java:164)
        at android.view.View.performClick(View.java:5637)
        at android.view.View$PerformClick.run(View.java:22429)
        at android.os.Handler.handleCallback(Handler.java:751)
        at android.os.Handler.dispatchMessage(Handler.java:95)
        at android.os.Looper.loop(Looper.java:154)
        at android.app.ActivityThread.main(ActivityThread.java:6119)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
2019-04-23 10:23:27.487 3252-3252/? E/ActivityThread: Service com.android.email.service.EmailBroadcastProcessorService has leaked ServiceConnection blt@6b67b86 that was originally bound here
    android.app.ServiceConnectionLeaked: Service com.android.email.service.EmailBroadcastProcessorService has leaked ServiceConnection blt@6b67b86 that was originally bound here
        at android.app.LoadedApk$ServiceDispatcher.<init>(LoadedApk.java:1336)
        at android.app.LoadedApk.getServiceDispatcher(LoadedApk.java:1231)
        at android.app.ContextImpl.bindServiceCommon(ContextImpl.java:1450)
        at android.app.ContextImpl.bindService(ContextImpl.java:1422)
        at android.content.ContextWrapper.bindService(ContextWrapper.java:636)
        at blr.a(SourceFile:243)
        at blr.d(SourceFile:286)
        at bft.c(SourceFile:179)
        at bdk.a(SourceFile:202)
        at bdk.a(SourceFile:146)
        at com.android.email.service.EmailBroadcastProcessorService.c(SourceFile:348)
        at com.android.email.service.EmailBroadcastProcessorService.onHandleIntent(SourceFile:1333)
        at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:68)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:154)
        at android.os.HandlerThread.run(HandlerThread.java:61)
2019-04-23 10:23:27.507 3252-3283/? E/bkv: RuntimeException when trying to unbind from service
    java.lang.IllegalArgumentException: Service not registered: blt@6b67b86
        at android.app.LoadedApk.forgetServiceDispatcher(LoadedApk.java:1289)
        at android.app.ContextImpl.unbindService(ContextImpl.java:1483)
        at android.content.ContextWrapper.unbindService(ContextWrapper.java:648)
        at blu.a(SourceFile:186)
        at blu.doInBackground(SourceFile:173)
        at android.os.AsyncTask$2.call(AsyncTask.java:305)
        at java.util.concurrent.FutureTask.run(FutureTask.java:237)
        at android.os.Handler.handleCallback(Handler.java:751)
        at android.os.Handler.dispatchMessage(Handler.java:95)
        at android.os.Looper.loop(Looper.java:154)
        at android.os.HandlerThread.run(HandlerThread.java:61)

Czerwonych napisów jest tam bardzo duzo ale wybrałem z nich to co pasowało do opisu, jest to moja pierwsza aplikacja i nie zuywałem jescze logcata 


 

1 odpowiedź

0 głosów
odpowiedź 23 kwietnia 2019 przez KubenQPL Maniak (62,820 p.)
Jakiś string na którym wywołujesz equals jest nullem, najprawdopodobniej w metodzie resolt
komentarz 23 kwietnia 2019 przez Paweł Szewczyk Obywatel (1,410 p.)
Wiem to tez podejrzewałem, ale nie wiem, z czym może być to zwiazane

Podobne pytania

0 głosów
1 odpowiedź 200 wizyt
0 głosów
1 odpowiedź 147 wizyt
0 głosów
2 odpowiedzi 486 wizyt

92,575 zapytań

141,424 odpowiedzi

319,649 komentarzy

61,960 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...