Java android.content.res.Resources$NotFoundException:资源ID#0x0 android错误

Java android.content.res.Resources$NotFoundException:资源ID#0x0 android错误,java,android,android-layout,Java,Android,Android Layout,我正在创建一个ArrayAdapter的超类,在该超类中我将绑定从对象接收的数据,并将它们放入TextView中。 代码并不复杂,我已经仔细检查了XML中所有文本视图的ID 我已经检查了所有其他标题相同的问题。 在这种情况下,它们似乎都不起作用 在下面附上我的代码 public class EarthquakeAdapter extends ArrayAdapter<Earthquake> { public EarthquakeAdapter(Context

我正在创建一个ArrayAdapter的超类,在该超类中我将绑定从对象接收的数据,并将它们放入TextView中。
代码并不复杂,我已经仔细检查了XML中所有文本视图的ID

我已经检查了所有其他标题相同的问题。
在这种情况下,它们似乎都不起作用

在下面附上我的代码

public class EarthquakeAdapter extends ArrayAdapter<Earthquake> 
    {
        public EarthquakeAdapter(Context context, int resource) {
            super(context, resource);
        }
        public EarthquakeAdapter(Activity activity, ArrayList<Earthquake> Earthquakes)
        {
            super(activity,0, (List<Earthquake>) Earthquakes);
        }

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            super.getView(position, convertView, parent);
            View ListItemView = convertView;
            if(ListItemView == null)
            {
                ListItemView = LayoutInflater.from(getContext()).inflate(
                    R.layout.earthquake_list_item, parent, false);
            }

            Earthquake currentItem = getItem(position);

            TextView magnitude = (TextView) 
            ListItemView.findViewById(R.id.magnitude);
            //Double m = ;
            magnitude.setText(""+currentItem.getmMag());

            TextView location = (TextView) ListItemView.findViewById(R.id.Location);
            location.setText(currentItem.getmLocation());

            TextView date = (TextView) ListItemView.findViewById(R.id.date);
            date.setText(currentItem.getmDate());

            return ListItemView;
        }
这是错误日志

06-11 20:38:36.570 9359-9359/com.example.android.quakereport W/ResourceType: No package identifier when getting value for resource number 0x00000000 06-11 20:38:36.571 9359-9359/com.example.android.quakereport D/AndroidRuntime: Shutting down VM 06-11 20:38:36.581 9359-9359/com.example.android.quakereport E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.android.quakereport, PID: 9359
   android.content.res.Resources$NotFoundException: Resource ID #0x0
       at android.content.res.Resources.getValue(Resources.java:1369)
       at android.content.res.MiuiResources.getValue(MiuiResources.java:145)
       at android.content.res.Resources.loadXmlResourceParser(Resources.java:2824)
       at android.content.res.Resources.getLayout(Resources.java:1183)
       at android.view.LayoutInflater.inflate(LayoutInflater.java:425)
       at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:378)
       at android.widget.ArrayAdapter.getView(ArrayAdapter.java:369)
       at com.example.android.quakereport.EarthquakeAdapter.getView(EarthquakeAdapter.java:28)
       at android.widget.AbsListView.obtainView(AbsListView.java:2346)
       at android.widget.ListView.makeAndAddView(ListView.java:1876)
       at android.widget.ListView.fillDown(ListView.java:702)
       at android.widget.ListView.fillFromTop(ListView.java:763)
       at android.widget.ListView.layoutChildren(ListView.java:1685)
       at android.widget.AbsListView.onLayout(AbsListView.java:2148)
       at android.view.View.layout(View.java:16653)
       at android.view.ViewGroup.layout(ViewGroup.java:5438)
       at android.widget.FrameLayout.layoutChildren(FrameLayout.java:336)
       at android.widget.FrameLayout.onLayout(FrameLayout.java:273)
       at android.view.View.layout(View.java:16653)
       at android.view.ViewGroup.layout(ViewGroup.java:5438)
       at android.support.v7.widget.ActionBarOverlayLayout.onLayout(ActionBarOverlayLayout.java:435)
       at android.view.View.layout(View.java:16653)
       at android.view.ViewGroup.layout(ViewGroup.java:5438)
       at android.widget.FrameLayout.layoutChildren(FrameLayout.java:336)
       at android.widget.FrameLayout.onLayout(FrameLayout.java:273)
       at android.view.View.layout(View.java:16653)
       at android.view.ViewGroup.layout(ViewGroup.java:5438)
       at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1743)
       at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1586)
       at android.widget.LinearLayout.onLayout(LinearLayout.java:1495)
       at android.view.View.layout(View.java:16653)
       at android.view.ViewGroup.layout(ViewGroup.java:5438)
       at android.widget.FrameLayout.layoutChildren(FrameLayout.java:336)
       at android.widget.FrameLayout.onLayout(FrameLayout.java:273)
       at com.android.internal.policy.PhoneWindow$DecorView.onLayout(PhoneWindow.java:2680)
       at android.view.View.layout(View.java:16653)
       at android.view.ViewGroup.layout(ViewGroup.java:5438)
       at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2198)
       at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1958)
       at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1134)
       at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6045)
       at android.view.Choreographer$CallbackRecord.run(Choreographer.java:860)
       at android.view.Choreographer.doCallbacks(Choreographer.java:672)
       at android.view.Choreographer.doFrame(Choreographer.java:608)
       at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:846)
       at android.os.Handler.handleCallback(Handler.java:739)
       at android.os.Handler.dispatchMessage(Handler.java:95)
       at android.os.Looper.loop(Looper.java:148)
       at android.app.ActivityThread.main(ActivityThread.java:5441)
       at java.lang.reflect.Method.invoke(Native Method)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:738)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:628)
试试这个

 Earthquake currentItem = new Earthquake(3.33,"someplace","05-05-05")
     currentItem=getItem(position);
代替

 Earthquake currentItem = get(position);        `//getItem(position);`
若它起作用,你们需要设置地震类中声明的变量的值

这可能会解决你的问题 声明成员变量

Context ctx;
ArrayList<Earthquake> Earthquake;
    public EarthquakeAdapter(Activity activity, ArrayList<Earthquake> Earthquakes)
            {
               super(activity,0, (List<Earthquake>) Earthquakes);
               Ctx=activity;
               Earthquake=this.Earthquake; 
            }
基本上,您没有传递地震适配器接收到的值

也请在此登记

    public Object getItem(int position) {
            return Earthquake.get(position);
        }
public int getCount() {
        return Earthquake.size();
    }
public long getItemId(int position) {
        return position;
    }
如果此操作不起作用,请显示设置
ArrayList
并调用适配器的代码
public EarthquakeAdapter(活动活动,ArrayList地震)

尝试此操作

 Earthquake currentItem = new Earthquake(3.33,"someplace","05-05-05")
     currentItem=getItem(position);
代替

 Earthquake currentItem = get(position);        `//getItem(position);`
若它起作用,你们需要设置地震类中声明的变量的值

这可能会解决你的问题 声明成员变量

Context ctx;
ArrayList<Earthquake> Earthquake;
    public EarthquakeAdapter(Activity activity, ArrayList<Earthquake> Earthquakes)
            {
               super(activity,0, (List<Earthquake>) Earthquakes);
               Ctx=activity;
               Earthquake=this.Earthquake; 
            }
基本上,您没有传递地震适配器接收到的值

也请在此登记

    public Object getItem(int position) {
            return Earthquake.get(position);
        }
public int getCount() {
        return Earthquake.size();
    }
public long getItemId(int position) {
        return position;
    }

如果这不起作用,请显示设置
ArrayList
并调用适配器的代码
public EarthquakeAdapter(活动活动,ArrayList地震)

我认为您需要修复构造函数。你只需要一个

public class EarthquakeAdapter extends ArrayAdapter<Earthquake> {
    public EarthquakeAdapter(Context context, ArrayList<Earthquake> earthquakes) {
        super(context, 0, earthquakes);
    }
否则,您需要确定第28行发生了什么,以及那里的零值是什么

你可以按照这个例子来做


您可能需要清理和重建项目以重新生成资源

我认为您需要修复构造函数。你只需要一个

public class EarthquakeAdapter extends ArrayAdapter<Earthquake> {
    public EarthquakeAdapter(Context context, ArrayList<Earthquake> earthquakes) {
        super(context, 0, earthquakes);
    }
否则,您需要确定第28行发生了什么,以及那里的零值是什么

你可以按照这个例子来做


您可能需要清理和重建项目以重新生成资源

问题出在EarthquakeAdapter类的getView()方法中 语句super.getView()引起了一些问题。我把它拆了,现在它可以正常工作了

请参阅问题本身中@MikeM的评论

删除getView()中的超级调用。您在三参数构造函数中传递了一个无效的布局资源ID—这导致ArrayAdapter尝试膨胀时出现异常—并且您没有使用超级返回,因为您自己在膨胀布局


问题出在EarthquakeAdapter类的getView()方法中 语句super.getView()引起了一些问题。我把它拆了,现在它可以正常工作了

请参阅问题本身中@MikeM的评论

删除getView()中的超级调用。您在三参数构造函数中传递了一个无效的布局资源ID—这导致ArrayAdapter尝试膨胀时出现异常—并且您没有使用超级返回,因为您自己在膨胀布局



请向我们展示您的地震等级和logcat,我无法理解您在地震等级中将变量mMag、mLocation、mDate的值设置在哪里?我认为您需要在调用时设置值constructor@AkhilSaraswat它是一个传递给构造函数的数组列表…删除
super
调用
getView()
。您在三参数构造函数中传递了一个无效的布局资源ID-当
ArrayAdapter
尝试膨胀它时会导致该异常-而且您没有使用
super
返回,因为您自己在膨胀布局。@MikeM。你的评论起了作用。它没有显示任何错误。谢谢D谢谢大家的帮助。:)请向我们展示您的地震等级和logcat,我无法理解您在地震等级中将变量mMag、mLocation、mDate的值设置在哪里?我认为您需要在调用时设置值constructor@AkhilSaraswat它是一个传递给构造函数的数组列表…删除
super
调用
getView()
。您在三参数构造函数中传递了一个无效的布局资源ID-当
ArrayAdapter
尝试膨胀它时会导致该异常-而且您没有使用
super
返回,因为您自己在膨胀布局。@MikeM。你的评论起了作用。它没有显示任何错误。谢谢D谢谢大家的帮助。:)但是getItem(int)不是地震类的方法。如何通过它的一个对象调用它?抱歉我的错误制造一个
新地震如何解决问题?它不会解决你的问题,但如果它工作,那么数组列表没有正确解析到构造函数,否则我可能是错的,所以请检查,如果它没有解决问题,但有帮助,你应该将其作为注释发布。不是AnswerItem,但getItem(int)不是地震类的方法。如何通过它的一个对象调用它?抱歉我的错误制造一个
新地震如何解决问题?它不会解决你的问题,但如果它工作,那么数组列表没有正确解析到构造函数,否则我可能是错的,所以请检查,如果它没有解决问题,但有帮助,你应该将其作为注释发布。不是回答实际上,是super.getView()调用的语句。我把它删掉了。它现在起作用了。谢谢。:)是的,我以为你指的是超级构造,实际上,它是带有super.getView()调用的语句。我把它删掉了。它现在起作用了。谢谢。:)是的,我以为你指的是超级建造师