Androidアプリで問題が発生しました。ボタンとイベントが関連付けられていますが、最初にクリックするとエラーが表示されます
「スパンの長さをゼロにすることはできません」。
。しかし、2回目にクリックすると、イベント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);
}
});
}
2つのボタンを備えた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-0620:01:39.890:
E/SpannableStringBuilder(6946):SPAN_EXCLUSIVE_EXCLUSIVEスパンはできません
長さがゼロ
あなたはneを助けることができますか?;)
LogCatで同じエラーエントリが発生しました。私の場合、それは私が使用しているサードパーティのキーボードが原因です。 Androidキーボードに戻すと、エラーエントリが表示されなくなります。
SwiftKeyのバグレポートもあるため、これがこの問題の最も可能性の高い原因です。
このエラーのデバッグを試みるには、最初にAndroidターミナル/コンソールに移動し、次のコマンドを実行します。
ps | grep THE_ERROR_PID_YOU_GET_(IT_IS_A_NUMBER)
次に、出力がアプリとして出力される場合...エラーの原因はアプリです。 Strings
に渡す空のlayout
を探してみてください。
私はこれとまったく同じ問題を抱えていましたが、空のString
をレイアウトに渡していたのは私のせいでした。 ""
を" "
に変更した後、このエラーはなくなりました。
コンソール出力からアプリを取得できない場合は、それが原因です(おそらく、他の人が言っているように、Androidキーボード)
私は少し遅れていることを知っています。誰かがまだイベントonclickを実行するために2回クリックするの助けが必要な場合は、これを削除しました:
Android:focusableInTouchMode="true"
OnClickイベントは、最初のクリックで機能するようになりました。