Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在膨胀视图时,LayoutInflater需要android.content.Context参数类型_Android_Actionbarsherlock_Layout Inflater - Fatal编程技术网

在膨胀视图时,LayoutInflater需要android.content.Context参数类型

在膨胀视图时,LayoutInflater需要android.content.Context参数类型,android,actionbarsherlock,layout-inflater,Android,Actionbarsherlock,Layout Inflater,当在ListView的适配器中膨胀视图时,我从用户那里得到很少的错误。 LayoutInflater的检索方式如下: inflater = (LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 布局在这里膨胀: convertView = inflater.inflate(R.layout.bla_bla, null); Stacktrace指向LayoutInflater在方法createV

当在ListView的适配器中膨胀视图时,我从用户那里得到很少的错误。 LayoutInflater的检索方式如下:

inflater = (LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
布局在这里膨胀:

convertView = inflater.inflate(R.layout.bla_bla, null);
Stacktrace指向LayoutInflater在方法createView()中使用的坏上下文导致的IllegalArgumentException

我如何影响LayoutFlater使用的上下文?这是否取决于我是使用应用程序上下文调用getSystemService()方法,还是使用活动的上下文调用getSystemService()方法

在我当前的代码中,活动是从SherlockFragmentActivityActionBarSherlock的类扩展而来的

感谢您的帮助,以下是完整的stacktrace:

android.view.InflateException: Binary XML file line #57: Error inflating class <unknown>
at android.view.LayoutInflater.createView(LayoutInflater.java:619)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:693)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:752)
at android.view.LayoutInflater.inflate(LayoutInflater.java:495)
at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
at android.view.LayoutInflater.inflate(LayoutInflater.java:353)
at com.blabla.ui.fragments.main.Adapter.getView(Adapter.java:470)
at android.widget.AbsListView.obtainView(AbsListView.java:2613)
at android.widget.ListView.makeAndAddView(ListView.java:1838)
at android.widget.ListView.fillDown(ListView.java:681)
at android.widget.ListView.fillFromTop(ListView.java:742)
at android.widget.ListView.layoutChildren(ListView.java:1659)
at android.widget.AbsListView.onLayout(AbsListView.java:2431)
at android.view.View.layout(View.java:14482)
at android.view.ViewGroup.layout(ViewGroup.java:4469)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1669)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1527)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1440)
at android.view.View.layout(View.java:14482)
at android.view.ViewGroup.layout(ViewGroup.java:4469)
at android.widget.FrameLayout.onLayout(FrameLayout.java:448)
at android.view.View.layout(View.java:14482)
at android.view.ViewGroup.layout(ViewGroup.java:4469)
at android.support.v4.view.ViewPager.onLayout(ViewPager.java:1585)
at android.view.View.layout(View.java:14482)
at android.view.ViewGroup.layout(ViewGroup.java:4469)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1669)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1527)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1440)
at android.view.View.layout(View.java:14482)
at android.view.ViewGroup.layout(ViewGroup.java:4469)
at android.support.v4.widget.DrawerLayout.onLayout(DrawerLayout.java:653)
at android.view.View.layout(View.java:14482)
at android.view.ViewGroup.layout(ViewGroup.java:4469)
at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1021)
at android.view.View.layout(View.java:14482)
at android.view.ViewGroup.layout(ViewGroup.java:4469)
at android.widget.FrameLayout.onLayout(FrameLayout.java:448)
at android.view.View.layout(View.java:14482)
at android.view.ViewGroup.layout(ViewGroup.java:4469)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1669)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1527)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1440)
at android.view.View.layout(View.java:14482)
at android.view.ViewGroup.layout(ViewGroup.java:4469)
at android.widget.FrameLayout.onLayout(FrameLayout.java:448)
at android.view.View.layout(View.java:14482)
at android.view.ViewGroup.layout(ViewGroup.java:4469)
at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2151)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1970)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1183)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:4863)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:749)
at android.view.Choreographer.doCallbacks(Choreographer.java:562)
at android.view.Choreographer.doFrame(Choreographer.java:532)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:735)
at android.os.Handler.handleCallback(Handler.java:725)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5328)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.IllegalArgumentException: argument 1 should have type android.content.Context, got com.blabla.ui.fragments.main.MainScreen
at java.lang.reflect.Constructor.constructNative(Native Method)
at java.lang.reflect.Constructor.newInstance(Constructor.java:417)
at android.view.LayoutInflater.createView(LayoutInflater.java:593)
... 64 more
android.view.InflateException:二进制XML文件行#57:膨胀类时出错
在android.view.LayoutInflater.createView(LayoutInflater.java:619)
位于android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:693)
位于android.view.LayoutInflater.rInflate(LayoutInflater.java:752)
在android.view.LayoutInflater.inflate(LayoutInflater.java:495)
在android.view.LayoutInflater.inflate(LayoutInflater.java:397)
在android.view.LayoutInflater.充气(LayoutInflater.java:353)
位于com.blabla.ui.fragments.main.Adapter.getView(Adapter.java:470)
在android.widget.AbsListView.obtainView(AbsListView.java:2613)
位于android.widget.ListView.makeAndAddView(ListView.java:1838)
在android.widget.ListView.fillDown(ListView.java:681)中
位于android.widget.ListView.fillFromTop(ListView.java:742)
位于android.widget.ListView.layoutChildren(ListView.java:1659)
在android.widget.AbsListView.onLayout(AbsListView.java:2431)
位于android.view.view.layout(view.java:14482)
位于android.view.ViewGroup.layout(ViewGroup.java:4469)
位于android.widget.LinearLayout.setChildFrame(LinearLayout.java:1669)
位于android.widget.LinearLayout.layoutVertical(LinearLayout.java:1527)
位于android.widget.LinearLayout.onLayout(LinearLayout.java:1440)
位于android.view.view.layout(view.java:14482)
位于android.view.ViewGroup.layout(ViewGroup.java:4469)
位于android.widget.FrameLayout.onLayout(FrameLayout.java:448)
位于android.view.view.layout(view.java:14482)
位于android.view.ViewGroup.layout(ViewGroup.java:4469)
位于android.support.v4.view.ViewPager.onLayout(ViewPager.java:1585)
位于android.view.view.layout(view.java:14482)
位于android.view.ViewGroup.layout(ViewGroup.java:4469)
位于android.widget.LinearLayout.setChildFrame(LinearLayout.java:1669)
位于android.widget.LinearLayout.layoutVertical(LinearLayout.java:1527)
位于android.widget.LinearLayout.onLayout(LinearLayout.java:1440)
位于android.view.view.layout(view.java:14482)
位于android.view.ViewGroup.layout(ViewGroup.java:4469)
位于android.support.v4.widget.DrawerLayout.onLayout(DrawerLayout.java:653)
位于android.view.view.layout(view.java:14482)
位于android.view.ViewGroup.layout(ViewGroup.java:4469)
在android.widget.RelativeLayout.onLayout(RelativeLayout.java:1021)上
位于android.view.view.layout(view.java:14482)
位于android.view.ViewGroup.layout(ViewGroup.java:4469)
位于android.widget.FrameLayout.onLayout(FrameLayout.java:448)
位于android.view.view.layout(view.java:14482)
位于android.view.ViewGroup.layout(ViewGroup.java:4469)
位于android.widget.LinearLayout.setChildFrame(LinearLayout.java:1669)
位于android.widget.LinearLayout.layoutVertical(LinearLayout.java:1527)
位于android.widget.LinearLayout.onLayout(LinearLayout.java:1440)
位于android.view.view.layout(view.java:14482)
位于android.view.ViewGroup.layout(ViewGroup.java:4469)
位于android.widget.FrameLayout.onLayout(FrameLayout.java:448)
位于android.view.view.layout(view.java:14482)
位于android.view.ViewGroup.layout(ViewGroup.java:4469)
在android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2151)
在android.view.ViewRootImpl.performTraversals上(ViewRootImpl.java:1970)
位于android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1183)
在android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:4863)
在android.view.Choreographer$CallbackRecord.run(Choreographer.java:749)
位于android.view.Choreographer.doCallbacks(Choreographer.java:562)
位于android.view.Choreographer.doFrame(Choreographer.java:532)
在android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:735)中
位于android.os.Handler.handleCallback(Handler.java:725)
位于android.os.Handler.dispatchMessage(Handler.java:92)
位于android.os.Looper.loop(Looper.java:137)
位于android.app.ActivityThread.main(ActivityThread.java:5328)
位于java.lang.reflect.Method.Invokenactive(本机方法)
位于java.lang.reflect.Method.invoke(Method.java:511)
在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102)上
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869)
在dalvik.system.NativeStart.main(本机方法)
原因:java.lang.IllegalArgumentException:参数1的类型应为android.content.Context,got com.blablabla.ui.fragments.main.main屏幕
位于java.lang.reflect.Constructor.constructNative(本机方法)
位于java.lang.reflect.Constructor.newInstance(Constructor.java:417)
位于android.view.LayoutInflater.createView(LayoutInflater.java:593)
... 64多
我如何影响LayoutFlater使用的上下文

首先不要使用
getSystemService()
。在
活动中调用
getLayoutInflater()

这是否取决于我是使用应用程序上下文调用getSystemService()方法,还是使用活动的上下文调用getSystemService()方法

在我当前的代码中,活动是从SherlockFragmentActivityActionBarSherlock的类扩展而来的


因此,更应该使用
GetLayoutFlater()
,这样才能得到正确的结果。

使用covertview=inflated.inflate(getApplicationcontext(),layoutresource,null)。

不要使用
应用程序
上下文进行布局膨胀:感谢您回答我的问题,我将从现在开始使用GetLayoutFlater(),如果我以后看不到这个错误,我会把你的答案标记为接受。