android.content.res.Resources $ NotFoundException: идентификатор ресурса # 0xffffffff.не может сделать поиск с запросом - PullRequest
0 голосов
/ 04 февраля 2019

пожалуйста, помогите.Я получил эту ошибку, но не знаю, что происходит.Я попытался сделать поиск в моем фрагменте.

я делаю этот код для пункта меню

<item
    android:id="@+id/action_search"
    android:icon="@drawable/ic_search"
    android:title="search"
    app:actionViewClass="android.support.v7.widget.SearchView"
    app:showAsAction="ifRoom|collapseActionView" />

и делаю этот код в моем фрагменте

 override fun onCreateOptionsMenu(menu: Menu?, inflater: MenuInflater?) {
    menu?.clear()
    inflater?.inflate(R.menu.menu_home, menu)
    val searchItem = menu?.findItem(R.id.action_search)
    val searchView = MenuItemCompat.getActionView(searchItem) as SearchView
    searchView.backgroundColorResource = Color.WHITE
    searchView.queryHint = "Search Review Title"
    searchView.setOnQueryTextListener(object: SearchView.OnQueryTextListener {
        override fun onQueryTextSubmit(query: String?): Boolean {
            presenter.getSearchReviewList(query)
            return true
        }

        override fun onQueryTextChange(query: String?): Boolean {
            presenter.getSearchReviewList(query)
            return true
        }
    })
    super.onCreateOptionsMenu(menu, inflater)
}

но я получил эту ошибку

E/AndroidRuntime: FATAL EXCEPTION: main
              Process: com.mqa.android.moviereview, PID: 22280
              android.content.res.Resources$NotFoundException: Resource ID #0xffffffff
                  at android.content.res.ResourcesImpl.getValue(ResourcesImpl.java:204)
                  at android.content.res.Resources.getColor(Resources.java:949)
                  at android.content.res.Resources.getColor(Resources.java:925)
                  at org.jetbrains.anko.CustomViewPropertiesKt.setBackgroundColorResource(CustomViewProperties.kt:36)
                  at com.mqa.android.moviereview.module.fragment.home.HomeFragment.onCreateOptionsMenu(HomeFragment.kt:97)
                  at android.support.v4.app.Fragment.performCreateOptionsMenu(Fragment.java:2561)
                  at android.support.v4.app.FragmentManagerImpl.dispatchCreateOptionsMenu(FragmentManager.java:3321)
                  at android.support.v4.app.FragmentController.dispatchCreateOptionsMenu(FragmentController.java:331)
                  at android.support.v4.app.FragmentActivity.onCreatePanelMenu(FragmentActivity.java:379)
                  at android.support.v7.view.WindowCallbackWrapper.onCreatePanelMenu(WindowCallbackWrapper.java:94)
                  at android.support.v7.app.AppCompatDelegateImpl$AppCompatWindowCallback.onCreatePanelMenu(AppCompatDelegateImpl.java:2549)
                  at android.support.v7.app.AppCompatDelegateImpl.preparePanel(AppCompatDelegateImpl.java:1589)
                  at android.support.v7.app.AppCompatDelegateImpl.doInvalidatePanelMenu(AppCompatDelegateImpl.java:1869)
                  at android.support.v7.app.AppCompatDelegateImpl$2.run(AppCompatDelegateImpl.java:227)
                  at android.os.Handler.handleCallback(Handler.java:789)
                  at android.os.Handler.dispatchMessage(Handler.java:98)
                  at android.os.Looper.loop(Looper.java:164)
                  at android.app.ActivityThread.main(ActivityThread.java:6541)
                  at java.lang.reflect.Method.invoke(Native Method)
                  at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
                  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)

пожалуйста, помогите мне, что происходит

Ответы [ 3 ]

0 голосов
/ 04 февраля 2019

Вы используете значение Color, а не ссылку на ресурс, поэтому вы не можете использовать

searchView.backgroundColorResource = Color.WHITE

. В качестве альтернативы ответу Генри вы можете использовать старый метод в стиле Java с

searchView.setBackgroundColor(Color.WHITE)
0 голосов
/ 04 февраля 2019

Используйте

getApplicationContext().getColor(R.color.white);

И поместите ваши значения цвета в файл XML, например

res / values ​​/ colors.xml

выглядит так:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="white">#ffffff</color>
    //other colors...
</resources>
0 голосов
/ 04 февраля 2019

searchView.backgroundColorResource = Color.WHITE это проблема.Здесь необходимо установить идентификатор ресурса, но Color.WHITE - это значение цвета, а не идентификатор ресурса.Вы можете попробовать

searchView.backgroundColorResource = android.R.color.white
...