Получение делителя по умолчанию в Android - PullRequest
1 голос
/ 06 марта 2020

В Интернете я нашел несколько руководств, использующих Java, которые пытаются получить значение по умолчанию Drawable listDivider из android.

После преобразования кода в Kotlin у меня есть следующее;

val attrs = IntArray(android.R.attr.listDivider)
val ta = context.obtainStyledAttributes(attrs)
mDivider = ta.getDrawable(0)
ta.recycle()

Но я сталкиваюсь с исключением из-за нехватки памяти, и приложение закрывается.

Я попытался проверить android.R.attr.listDivider, и это просто список из множества нулей и R.attr.listDivider не не существует (у меня R импортировано).

Не совсем уверен, что еще я могу попробовать.

Редактировать: У меня такое ощущение, что это может иметь отношение к темам. Вот настройка для тем, я использую только одно действие в своем приложении, все делается с фрагментами.

<application
    android:theme="@style/AppTheme">
    <activity
        android:name=".MainActivity"
        android:theme="@style/AppTheme.NoActionBar" >
    </activity>
</application>

Затем в styles.xml

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
</style>

<style name="AppTheme.NoActionBar">
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
</style>

<style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" />

<style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" />

EDIT2; Я также создал новое приложение, которое просто запускает блок кода, и я получаю ту же ошибку java.lang.OutOfMemoryError: Failed to allocate a 404238828 byte allocation with 4194304 free bytes and 318MB until OOM

1 Ответ

0 голосов
/ 07 марта 2020

Оказывается, я неправильно инициализировал IntArray;

val attrs = intArrayOf(android.R.attr.listDivider)
val a = context.obtainStyledAttributes(attrs)
mDivider = a.getDrawable(0)
a.recycle()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...