2013-04-05 2 views
10

У меня проблема с моим приложением для Android. Я получил связанную кнопку и событие, но когда я нажимаю на первый раз, появляется ошибкаОшибка: SPAN_EXCLUSIVE_EXCLUSIVE spans не может иметь нулевую длину

"spans cannot have zero lenght".

. Но когда я нажимаю второй раз, событие OnClick хорошо работает .. посмотреть на моем коде 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); 
     } 
    }); 
    } 

код XML с двумя кнопками (устаревшее предупреждение происходит):

<?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" /> 

Когда я нажимаю первый раз Log кот взаимодействует с:

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

вы можете помочь пе ?;)

+0

Добавьте также код activity_main.xml. –

+0

Пожалуйста, разместите трассировку стека от Logcat – Karakuri

+0

Теперь он обновлен :) спасибо – cpfp

ответ

21

Я столкнулся с теми же ошибками в LogCat. В моем случае это вызвано третьей стороной клавиатуры, которую я использую. Когда я меняю его на клавиатуру Android, запись об ошибке больше не отображается.

Это наиболее вероятная причина этого вопроса, поскольку есть также сообщение об ошибке для SwiftKey:

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

+0

@ Карлос Пьедаде Прочитайте этот ответ и ссылки, которые я разместил здесь. –

+0

Прошу прощения за ожидание. Я видел ваш ответ, и я не могу понять, как я могу решить свою проблему. Вы видели обновление, которое я сделал в своем сообщении и в информации LogCat? спасибо – cpfp

+0

@CarlosPiedade Я видел ваш обновленный пост. Возможно, я поделился ссылкой, чтобы решить вашу проблему. Прочтите мое сообщение внимательно. –

0

Чтобы попробовать отладить эту ошибку, сначала перейдите на андроид терминала/консоль и выполнить это команда:

ps | grep THE_ERROR_PID_YOU_GET_(IT_IS_A_NUMBER) 

тогда, если выход выходит как ваше приложение ... это ваше приложение вызывает ошибку. Попробуйте найти пустой Strings, который вы передадите в layout.

У меня была такая же проблема, и это была моя ошибка, когда я пропускал пустой String в свой макет. После изменения "" до " " эта ошибка исчезла.

Если вы не получите приложение с выхода консоли, то это что-то другое вызывает его (возможно, как и другие говорили, андроид клавиатуры)

0

Я знаю, что я немного поздно. В случае, если кто-то по-прежнему нуждается в помощи с необходимостью нажмите второй раз для события OnClick для запуска, я удалил это:

android:focusableInTouchMode="true" 

Событие OnClick теперь будет работать на первом щелчке.