我的Android应用程序出了问题。我有一个按钮和事件关联,但是当我第一次点击时出现错误
“跨度不能为零长度”。
。但是当我第二次点击时,事件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 / Sensors(6946):sendDelay --- 200000000 04-06
20:01:39.865:D / SensorManager(6946):JNI - sendDelay 04-06
20:01:39.865:I / SensorManager(6946):设置正常延迟=真04-06
20:01:39.890:E / SpannableStringBuilder(6946):SPAN_EXCLUSIVE_EXCLUSIVE
跨度不能为零长度04-06 20:01:39.890:
E / SpannableStringBuilder(6946):SPAN_EXCLUSIVE_EXCLUSIVE跨度不能
长度为零
答案 0 :(得分:21)
我在LogCat中遇到了相同的错误条目。在我的情况下,它是由我使用的第三方键盘引起的。当我将其更改回Android键盘时,错误条目不再显示。
这是导致此问题的最可能原因,因为还有针对SwiftKey的错误报告:
答案 1 :(得分:0)
要尝试调试此错误,请首先转到Android终端/控制台并执行以下命令:
ps | grep THE_ERROR_PID_YOU_GET_(IT_IS_A_NUMBER)
然后如果输出作为您的应用程序出现......那么您的应用程序会导致错误。尝试查找您传递到Strings
的空layout
。
我遇到了同样的问题,因为我将空String
传递给我的布局,这是我的错。将""
更改为" "
后,此错误消失了。
如果你没有从控制台输出中获取你的应用程序,那么它就会引起它(可能正如其他人所说的那样,安卓键盘)
答案 2 :(得分:0)
我知道我有点晚了。如果有人仍然需要帮助,第二次点击该活动,请点击运行,我删除了这个:
android:focusableInTouchMode="true"
onClick事件现在可以在第一次点击时使用。