2013-04-05 13 views
10

Mam problem z moją aplikacją na Androida. Mam skojarzony przycisk i zdarzenie, ale gdy kliknę pierwszy raz, pojawia się błąd:Błąd: Przęty SPAN_EXCLUSIVE_EXCLUSIVE nie mogą mieć zerowej długości

. Ale gdy klikam drugi raz, zdarzenie onclick działa dobrze .. spojrzenie na moim kodu Java:

public class MainActivity extends Activity { 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    final Button selectAltitude = (Button) findViewById(R.id.buttonAltitude1); 
    final Button selectAltitude2 = (Button) findViewById(R.id.buttonAltitude2); 

    selectAltitude2.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View view){ 

       String tempAlt = selectAltitude2.getText().toString(); 
       selectAltitude2.setText(selectAltitude.getText().toString()); 
       selectAltitude.setText(tempAlt); 
     } 
    }); 
    } 

kodu xml z dwóch przycisków (wystąpi przestarzałe ostrzeżenie):

<?xml version="1.0" encoding="utf-8"?> 
<AbsoluteLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="@android:color/black"> 

<Button 
     android:id="@+id/buttonAltitude1" 
     style="?android:attr/buttonBarButtonStyle" 
     android:layout_width="39dp" 
     android:layout_height="42dp" 
     android:layout_marginLeft="250dp" 
     android:layout_x="257dp" 
     android:layout_y="419dp" 
     android:background="@drawable/drawable1" 
     android:focusableInTouchMode="true" 
     android:gravity="center_vertical" 
     android:includeFontPadding="false" 
     android:linksClickable="true" 
     android:minHeight="10dp" 
     android:minWidth="64dp" 
     android:paddingLeft="10dp" 
     android:paddingRight="5dp" 
     android:scrollHorizontally="true" 
     android:text="@string/button_meters" 
     android:textColor="@android:color/black" 
     android:textSize="22sp" 
     android:textStyle="bold" /> 

     <Button 
      android:id="@+id/buttonAltitude2" 
      style="?android:attr/buttonBarButtonStyle" 
      android:layout_width="65dp" 
      android:layout_height="42dp" 
      android:layout_marginLeft="250dp" 
      android:layout_x="295dp" 
      android:layout_y="419dp" 
      android:background="@drawable/drawable2" 
      android:clickable="true" 
      android:focusableInTouchMode="true" 
      android:gravity="center_vertical" 
      android:includeFontPadding="false" 
      android:linksClickable="true" 
      android:minHeight="10dp" 
      android:minWidth="64dp" 
      android:paddingLeft="15dp" 
      android:paddingRight="5dp" 
      android:scrollHorizontally="true" 
      android:text="@string/button_feet" 
      android:textColor="@android:color/black" 
      android:textSize="25sp" 
      android:textStyle="bold" /> 

kiedy klikam raz pierwszy Log kot współdziała z:

04-06 20:01:39.865: I/Sensors(6946): sendDelay --- 200000000 04-06

20:01:39.865: D/SensorManager(6946): JNI - sendDelay 04-06

20:01:39.865: I/SensorManager(6946): Set normal delay = true 04-06

20:01:39.890: E/SpannableStringBuilder(6946): SPAN_EXCLUSIVE_EXCLUSIVE

spans cannot have a zero length 04-06 20:01:39.890:

E/SpannableStringBuilder(6946): SPAN_EXCLUSIVE_EXCLUSIVE spans cannot

have a zero length

możesz pomóc ne ?;)

+0

Dodaj również kod activity_main.xml. –

+0

Proszę położyć ślad stosu z Logcat – Karakuri

+0

Jest aktualizowany teraz :) dzięki – cpfp

Odpowiedz

21

Uruchomiłem te same wpisy błędów w LogCat. W moim przypadku jest to spowodowane używaniem klawiatury innej firmy. Po zmianie z powrotem na klawiaturę systemu Android wpis błędu nie pojawia się więcej.

Jest to najbardziej prawdopodobna przyczyna tego problemu, ponieważ istnieje również raport o błędzie do SwiftKey:

http://support.swiftkey.net/forums/116693-2-bug-reports/suggestions/2994580-span-exclusive-exclusive-spans-cannot-have-a-zero-

+0

@ Carlos Piedade Przeczytaj tę odpowiedź i linki, które tutaj zamieściłem. –

+0

Przepraszam za czekanie .. Widziałem twoją odpowiedź i nie mogę zrozumieć, jak mogę rozwiązać mój problem. Czy widzisz aktualizację, którą zrobiłem w moim poście i informacje LogCat? dzięki – cpfp

+0

@CarlosPiedade Widziałem twój zaktualizowany post. Mogę udostępnić link rozwiązać twój problem. Przeczytaj uważnie mój post. –

0

Aby spróbować debugowanie ten błąd, najpierw przejdź do android terminalu/konsoli i wykonać to polecenie:

ps | grep THE_ERROR_PID_YOU_GET_(IT_IS_A_NUMBER) 

następnie, jeśli wyjście wychodzi jako aplikacja ... to twoja aplikacja powoduje błąd. Spróbuj odszukać pusty Strings, który przekazujesz do layout.

Miałem dokładnie ten sam problem i to była moja wina, ponieważ przekazywałem pustą String do mojego układu. Po zmianie "" na " " ten błąd zniknął.

Jeśli nie dostać swoją aplikację z wyjścia konsoli, to jest coś innego powodując jej (prawdopodobnie, jak mówili inni, android klawiatura)

0

Wiem, że trochę późno. Na wypadek, gdyby ktoś jeszcze potrzebuje pomocy z konieczności kliknij po raz drugi dla zdarzenia onclick uruchomić, usunąłem to:

android:focusableInTouchMode="true" 

Zdarzenie onClick będzie teraz pracować na pierwszym kliknięciem.

Powiązane problemy