Android 在导航抽屉项中找不到资源异常
堆栈跟踪错误:Android 在导航抽屉项中找不到资源异常,android,onclicklistener,navigation-drawer,Android,Onclicklistener,Navigation Drawer,堆栈跟踪错误: 01-11 13:04:47.305 13251-13251/info.androidhive.materialdesign E/AndroidRuntime: FATAL EXCEPTION: main 01-11 13:04:47.305 13251-13251/info.androidhive.materialdesign E/AndroidRuntime: Process: info.androidhive.materialdesign, PID: 13251 01-11
01-11 13:04:47.305 13251-13251/info.androidhive.materialdesign E/AndroidRuntime: FATAL EXCEPTION: main
01-11 13:04:47.305 13251-13251/info.androidhive.materialdesign E/AndroidRuntime: Process: info.androidhive.materialdesign, PID: 13251
01-11 13:04:47.305 13251-13251/info.androidhive.materialdesign **E/AndroidRuntime: android.content.res.Resources$NotFoundException:** Resource ID #0x0
01-11 13:04:47.305 13251-13251/info.androidhive.materialdesign E/AndroidRuntime: at android.content.res.Resources.getValue(Resources.java:1343)
01-11 13:04:47.305 13251-13251/info.androidhive.materialdesign E/AndroidRuntime: at android.content.res.Resources.getDrawable(Resources.java:819)
01-11 13:04:47.305 13251-13251/info.androidhive.materialdesign E/AndroidRuntime: at android.content.res.Resources.getDrawable(Resources.java:799)
01-11 13:04:47.305 13251-13251/info.androidhive.materialdesign E/AndroidRuntime: at android.content.Context.getDrawable(Context.java:403)
01-11 13:04:47.305 13251-13251/info.androidhive.materialdesign E/AndroidRuntime: at android.support.v4.content.ContextCompatApi21.getDrawable(ContextCompatApi21.java:26)
01-11 13:04:47.305 13251-13251/info.androidhive.materialdesign E/AndroidRuntime: at android.support.v4.content.ContextCompat.getDrawable(ContextCompat.java:321)
01-11 13:04:47.305 13251-13251/info.androidhive.materialdesign E/AndroidRuntime: at android.support.v7.internal.widget.TintManager.getDrawable(TintManager.java:177)
01-11 13:04:47.305 13251-13251/info.androidhive.materialdesign E/AndroidRuntime: at android.support.v7.internal.widget.TintManager.getDrawable(TintManager.java:170)
01-11 13:04:47.305 13251-13251/info.androidhive.materialdesign E/AndroidRuntime: at android.support.v7.widget.AppCompatImageHelper.setImageResource(AppCompatImageHelper.java:53)
01-11 13:04:47.305 13251-13251/info.androidhive.materialdesign E/AndroidRuntime: at android.support.v7.widget.AppCompatImageView.setImageResource(AppCompatImageView.java:74)
01-11 13:04:47.305 13251-13251/info.androidhive.materialdesign E/AndroidRuntime: at com.actapps.ActinumERP.adapter.NavigationDrawerAdapter.onBindViewHolder(**NavigationDrawerAdapter.java:47**)
01-11 13:04:47.305 13251-13251/info.androidhive.materialdesign E/AndroidRuntime: at com.actapps.ActinumERP.adapter.NavigationDrawerAdapter.onBindViewHolder(**NavigationDrawerAdapter.java:20)**
string.xml
<string-array name="nav_drawer_labels">
<item>@string/nav_item_home</item>
<item>@string/nav_item_friends</item>
<item>@string/nav_item_notifications</item>
</string-array>
<array name="img_id_arr">
<item>@drawable/ic_store</item>
<item>@drawable/ic_business</item>
<item>@drawable/ic_power</item>
</array>
代码中的粗体文本也是显示的错误。。请帮助任何人。。
提前谢谢你的帮助 更换导航抽屉的bindview支架
@Override
public void onBindViewHolder(MyViewHolder holder, int position) {
NavDrawerItem current = data.get(position);
holder.title.setText(String.valueOf(current.getTitle()));
}
在这里:
img\u id\u arr
数组包含可绘制的id,因此请使用obtainTypedArray
而不是getIntArray
来获取TypedArray数组,然后使用getDrawable
方法来获取可绘制的
TypedArray images;
images=getActivity().getResources().obtainTypedArray(R.array.img_id_arr);
现在使用getResourceId
获取资源id:
navItem.setIcon(images.getResourceId(i,-1));
current.getIcon()方法返回一个非资源id,这就是您面临此问题的原因。
images=getActivity().getResources().getIntArray(R.array.img_id_arr);
TypedArray images;
images=getActivity().getResources().obtainTypedArray(R.array.img_id_arr);
navItem.setIcon(images.getResourceId(i,-1));