странное поведение с EditText внутри тега <include> - PullRequest
3 голосов
/ 11 октября 2011

У меня есть представление, которое включает еще одно с компонентом include (см. http://android -developers.blogspot.com / 2009/02 / android-layout-tricks-2-reusing-layouts.html )
Внутри включенного представления есть некоторый EditText.

Есть некоторые проблемы с этими EditText:

  • Я должен коснуться их 2 раза, чтобы появилась клавиатура
  • если я долго нажимаю на один из EditText, приложение зависает и вылетает (только на моем телефоне - Samsung galaxy S, а не на эмуляторе)

Этого не происходит, если Edittext НЕ находится в теге <include> ...
У вас есть идеи по этой проблеме ??

С уважением, Christophe

Ответы [ 2 ]

16 голосов
/ 15 августа 2012

У меня та же проблема с длинным кликом по EditText или TextView на устройстве Samsung с Android 4.0 и выше.

Журнал аварии здесь

java.lang.ArithmeticException: divide by zero
at android.widget.TextView$SelectionActionModeCallback.onCreateActionMode(TextView.java:10647)
at com.android.internal.policy.impl.PhoneWindow$DecorView.startActionMode(PhoneWindow.java:2382)
at com.android.internal.policy.impl.PhoneWindow$DecorView.startActionModeForChild(PhoneWindow.java:2322)
at android.view.ViewGroup.startActionModeForChild(ViewGroup.java:571)
at android.view.ViewGroup.startActionModeForChild(ViewGroup.java:571)
at android.view.ViewGroup.startActionModeForChild(ViewGroup.java:571)
at android.view.ViewGroup.startActionModeForChild(ViewGroup.java:571)
at android.view.ViewGroup.startActionModeForChild(ViewGroup.java:571)
at android.view.ViewGroup.startActionModeForChild(ViewGroup.java:571)
at android.view.ViewGroup.startActionModeForChild(ViewGroup.java:571)
at android.view.View.startActionMode(View.java:3687)
at android.widget.TextView.startSelectionActionMode(TextView.java:10451)
at android.widget.TextView.performLongClick(TextView.java:9570)
at android.view.View$CheckForLongPress.run(View.java:14241)
at android.os.Handler.handleCallback(Handler.java:605)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4507)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:790)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557)
at dalvik.system.NativeStart.main(Native Method)
@Dumpstate > dumpstate -k -t -n -z -d -o /data/log/dumpstate_app_error

Это потому, что когда вы долго нажимаете на текст, система Samsung будет выбирать текст, чтобы выделить и используйте onCreateActionMode (), чтобы показать кнопку вырезать, скопировать, вставить и т.д.

Если вы используете Android 4.0 up, он будет отображаться в ActionBar и использовать стиль темы ActionBar в style.xml вашего приложения. И я нашел свой

"@android:style/Widget.Holo.ActionButton"

установить minWidth на ноль, причина samsung система вычислить действие кнопки в результате

java.lang.ArithmeticException: divide by zero

Наконец, установите minWidth не на ноль, проблема решена.

2 голосов
/ 16 января 2015

Я хотел бы прокомментировать ответ, приведенный ниже (https://stackoverflow.com/a/11966733/1777346), но пока не набрал достаточно очков репутации!

Мы также столкнулись с тем же "java.lang.ArithmeticException: Поделить наисключение «ноль» на устройствах Samsung (не тестировал другие устройства ... все Samsung). Это происходит при длительном нажатии существующего текста в поле EditText.

Решение, приведенное ниже, сработало. У нас был следующий стильопределено. Изменение minWidth на "1" исправило это.

<style name="ActionButtonStyle" parent="@android:style/Widget.Holo.Light.ActionButton">
    <item name="android:minWidth">0dp</item>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...