eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaAndroid › Re: Android
  • Path: news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!.PO
    STED!not-for-mail
    From: Adam Dybkowski <a...@4...pl>
    Newsgroups: pl.misc.elektronika
    Subject: Re: Android
    Date: Wed, 09 Feb 2011 23:15:25 +0100
    Organization: http://onet.pl
    Lines: 71
    Message-ID: <iiv3lq$tqt$1@news.onet.pl>
    References: <iio2dt$58r$1@opal.futuro.pl> <iipqur$fq$2@news.onet.pl>
    <iipufp$bf3$1@opal.futuro.pl> <iisd8q$6td$1@news.onet.pl>
    <iish8c$8um$1@opal.futuro.pl>
    <o...@4...com>
    <s...@b...pl>
    <1...@v...googlegroups.com>
    <iiuo70$cpv$1@opal.futuro.pl>
    NNTP-Posting-Host: aele226.neoplus.adsl.tpnet.pl
    Mime-Version: 1.0
    Content-Type: text/plain; charset=ISO-8859-2; format=flowed
    Content-Transfer-Encoding: 8bit
    X-Trace: news.onet.pl 1297289722 30557 79.191.30.226 (9 Feb 2011 22:15:22 GMT)
    X-Complaints-To: n...@o...pl
    NNTP-Posting-Date: Wed, 9 Feb 2011 22:15:22 +0000 (UTC)
    User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.8.1.23) Gecko/20090812
    Thunderbird/2.0.0.23 Mnenhy/0.7.6.666
    In-Reply-To: <iiuo70$cpv$1@opal.futuro.pl>
    Xref: news-archive.icm.edu.pl pl.misc.elektronika:604544
    [ ukryj nagłówki ]

    W dniu 2011-02-09 19:59 Lelek@ napisał(a):

    >> Skoro ta dyskusja trwa dalej, to zanim się wytoczy takie armaty, można
    >> byłoby poprosić autora wątku o kompilowalny kawałek kodu który ma
    >> sprawiać takie problemy? Z opisu, z pierwszej wiadomości, można
    >
    > public void dupa() {
    [...]
    > Jeżeli w polu EditText nic nie wpiszę, będzie puste to próba odczytania
    > buf[0] skończy się wywałką.

    Hmmm, coś chyba ściemniasz. Skopiowałem twój przykładowy kod i odpaliłem
    w emulatorze 2.2. Na głównej aktywności mam kontrolkę edycyjną o nazwie
    "editText1". Tak wygląda cała metoda (podpiąłem jej wywołanie pod
    naciśnięcie dodatkowego przycisku):

    public void test() {
    EditText editText = (EditText) findViewById(R.id.editText1);
    String fromEditText = editText.getText().toString();

    byte buf[] = new byte[256];
    int bfx[] = new int[256];
    int i, len;

    try {
    buf = fromEditText.getBytes("UTF-8");
    } catch (UnsupportedEncodingException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    return;
    }

    len = buf.length;

    for (i = 0; i < len; i++) {
    bfx[i] = ((int)buf[i] & 0xFF);
    Log.d("TEST", "BYTE: " + bfx[i]);
    }
    }

    Znajduje się tu wszystko, co przytoczyłeś plus dodatkowy kod na początku
    do odczytania ciągu znaków z kontrolki edycyjnej. Początkowe
    zaalokowanie bufora buf nie ma znaczenia bo metoda getBytes() i tak
    zwraca tablicę bajtów i zmienna buf zostanie nadpisana. Prościej jest
    nie deklarować tej zmiennej na początku tylko dopiero gdy jest
    potrzebna, np:
    byte buf[] = fromEditText.getBytes("UTF-8");

    W każdym razie uruchomienie daje spodziewane rezultaty. Gdy kontrolka
    jest pusta to nic się nie wywala, metoda getBytes() zwraca pustą tablicę
    a nie null, w zmiennej len mamy wartość 0 i nic się nie wypisuje.

    Natomiast gdy do kontrolki edycyjnej wpiszę jakiś tekst to także
    powyższy kod działa zgodnie z oczekiwaniami. Na debugu (to ten magiczny
    LogCat, w Eclipse możesz go pokazać wybierając z menu: Window/Show
    view/Other/Android/LogCat albo prościej naciskając Ctrl+3 i wpisując
    "logcat") jest to pokazywane:

    02-09 22:04:03.585: DEBUG/TEST(336): BYTE: 97
    02-09 22:04:03.585: DEBUG/TEST(336): BYTE: 100
    02-09 22:04:03.585: DEBUG/TEST(336): BYTE: 97
    02-09 22:04:03.585: DEBUG/TEST(336): BYTE: 109

    Chyba nie unikniesz pokazania większego kawałka kodu aby ustalić co się
    wywala właściwie. Możesz spakować cały projekt i wrzucić gdzieś na sieć?

    --
    Adam Dybkowski
    http://dybkowski.net/

    Uwaga: przed wysłaniem do mnie maila usuń cyfry z adresu.

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: