10

我的安卓应用有问题。我有一个按钮和事件关联,但是当我第一次单击时出现错误

“跨度不能有零长度”。

. 但是当我第二次单击时,事件 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 cat 交互时:

04-06 20:01:39.865:I/传感器(6946):sendDelay --- 200000000 04-06

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

20:01:39.865:I/SensorManager(6946):设置正常延迟 = true 04-06

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

跨度不能有零长度 04-06 20:01:39.890:

E/SpannableStringBuilder(6946):SPAN_EXCLUSIVE_EXCLUSIVE 跨度不能

长度为零

你能帮忙吗?;)

4

3 回答 3

21

我在 LogCat 中遇到了相同的错误条目。就我而言,这是由我正在使用的第 3 方键盘引起的。当我将其更改回 Android 键盘时,错误条目不再显示。

这是此问题的最可能原因,因为 SwiftKey 也有错误报告:

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

于 2013-04-05T16:51:23.057 回答
0

要尝试调试此错误,请首先转到您的 android 终端/控制台并执行以下命令:

ps | grep THE_ERROR_PID_YOU_GET_(IT_IS_A_NUMBER)

那么如果输出作为您的应用程序出现......这是您的应用程序导致错误。尝试寻找Strings您传递到layout.

我遇到了同样的问题,这是我的错,因为我在String布局中传递了一个空白。更改""为此" "错误后消失了。

如果您没有从控制台输出中获取您的应用程序,那么是其他原因导致它(可能,正如其他人所说,android 键盘)

于 2014-07-08T15:01:25.727 回答
0

我知道我有点晚了。如果有人仍然需要第二次单击以使事件 onclick 运行的帮助,我将其删除:

android:focusableInTouchMode="true"

onClick 事件现在将在第一次单击时起作用。

于 2015-06-17T11:35:53.740 回答