Сбой приложения при втором касании edittext на планшете

#android #android-layout #android-fragments #android-edittext

#Android #android-макет #android-фрагменты #android-редактировать текст #android-edittext

Вопрос:

Мое приложение продолжает сбоить, когда я нажимаю на edittext во второй раз на устройствах с диагональю 7 и 10 дюймов. То же самое приложение отлично работает на мобильных устройствах. Я разрабатываю приложение для альбомной ориентации. Вот мой журнал

  FATAL EXCEPTION: main
 Process: com.android.TabletApp, PID: 15773
 android.content.res.Resources$NotFoundException: Resource ID #0x0
 at android.content.res.Resources.getValue(Resources.java:1251)
 at android.content.res.Resources.getDrawable(Resources.java:758)
 at android.widget.Editor$InsertionPointCursorController.getHandle(Editor.java:3621)
 at android.widget.Editor$InsertionPointCursorController.show(Editor.java:3600)
 at android.widget.Editor.onTouchUpEvent(Editor.java:1658)
 at android.widget.TextView.onTouchEvent(TextView.java:7957)
 at android.view.View.dispatchTouchEvent(View.java:7789)
 at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2326)
 at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2031)
 at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2326)
 at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2031)
 at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2326)
 at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2031)
 at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2326)
 at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2031)
 at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2326)
 at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2031)
 at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2326)
 at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2031)
 at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2326)
 at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2031)
 at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2326)
 at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2031)
 at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2326)
 at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2031)
 at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2326)
 at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2031)
 at  com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:2133)
 at  com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1557)
 at android.app.Activity.dispatchTouchEvent(Activity.java:2491)
 at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneW indow.java:2081)
 at android.view.View.dispatchPointerEvent(View.java:7980)
 at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:4392)
 at  android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:4263)
 at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3809)
 at  android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3859)
 at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3828)
 at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3935)
 at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3836)
 at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:3992)
 at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3809)
 at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3859)
 at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3828)
 at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3836)
 at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3809)
 at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:6124)
 at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:6104)
 at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:6058)
 at  android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:6254)
 at   android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:185)
 at android.os.MessageQueue.nativePollOnce(Native Method)
 at android.os.MessageQueue.next(MessageQueue.java:138)
  

Я использую простой edittext. Отлично работает с мобильными устройствами, не работает на планшете. Все приложение находится в альбомной ориентации.

Комментарии:

1. pradip_android: используете ли вы какой-либо макет и для планшета. Пожалуйста, предоставьте свой макет и файл класса для получения более подробной информации.

2. Вы помещаете свой чертеж в неправильную папку, поместите его в общую папку для рисования.

3. @Janak Я использовал ScrollView и линейную компоновку/square_background» />

4. @Pitty Я поместил чертежи в общую папку

5. @ pradip_android вы должны проверить и отладить событие onTouch в EdiText, ваше событие касания может создать проблему с кодом.

Ответ №1:

Убедитесь, что вы создали следующие чертежи:

 // for Phones
drawable-ldpi
drawable-mdpi
drawable-hdpi

//for 7 inch tablets
drawable-large-mdpi
drawable-large-hdpi(for Nexus 7)

// for 10 inch tablets
drawable-xlarge-mdpi
  

и поместите square_background в каждый из них.

Комментарии:

1. Я создал drawable-hdpi, drawable-mdpi, drawable-ldpi, drawable-sw600dp, drawable-sw720dp и все устройства, использующие правильные чертежи из этих папок.

2. kgandroid — я пытался поместить square_background в каждый из них, но все еще не работает

3. попробуйте это в своем манифесте: <поддержка экранов android: largeScreens =»true» android:normalScreens =»true» android: smallScreens =»true» android: anyDensity =»true»> </ supports-screens>

4. kgandroid — Спасибо, но все еще не исправлено. получаю ту же ошибку