When I ommit the LayoutInflater.From(context) and use what you
suggested, I get a compiler error saying that: "An object reference is
required for the non-static filed, method, or property
'Android.Views.LayoutInflater.Inflate(int, Android.Views.ViewGroup,
bool)'"

Though I found out what the error was to look at the stacktrace in the
adb log, which was that I had forgotten to set a height attribute on a
textview:

I/MonoDroid(18475): UNHANDLED EXCEPTION: Java.Lang.RuntimeException:
Exception of type 'Java.Lang.RuntimeException' was thrown.
I/MonoDroid(18475): at Android.Runtime.JNIEnv.CallObjectMethod
(intptr,intptr,Android.Runtime.JValue[]) [0x00024] in
/home/jpobst/Desktop/monodroi
d/Mono.Android/src/Runtime/JNIEnv.cs:332
I/MonoDroid(18475): at Android.Views.LayoutInflater.Inflate
(int,Android.Views.ViewGroup,bool) [0x0003e] in
/home/jpobst/Desktop/monodroid/Mono.An
droid/platforms/android-8/src/generated/Android.Views.LayoutInflater.cs:484
I/MonoDroid(18475): at
NSPublic.AndroidClient.Adapters.UpdateFreqAdapter.GetView
(int,Android.Views.View,Android.Views.ViewGroup) [0x0001a] in C:\
ENM\Dev\WebClient\src\prod\PubWeb\NSPublic.AndroidClient2\Adapters\UpdateFreqAdapter.cs:53
I/MonoDroid(18475): at
Android.Widget.BaseAdapter.n_GetView_ILandroid_view_View_Landroid_view_ViewGroup_
(intptr,intptr,int,intptr,intptr) [0x0001
9] in 
/home/jpobst/Desktop/monodroid/Mono.Android/platforms/android-8/src/generated/Android.Widget.BaseAdapter.cs:420
I/MonoDroid(18475): at (wrapper dynamic-method)
object.eb854e94-74fb-41a5-a21f-cda1beb22853
(intptr,intptr,int,intptr,intptr) <IL 0x0001e, 0x00053
>
I/MonoDroid(18475):
I/MonoDroid(18475):   --- End of managed exception stack trace ---
I/MonoDroid(18475): java.lang.RuntimeException: Binary XML file line
#7: You must supply a layout_height attribute.
I/MonoDroid(18475):     at
android.content.res.TypedArray.getLayoutDimension(TypedArray.java:543)
I/MonoDroid(18475):     at
android.view.ViewGroup$LayoutParams.setBaseAttributes(ViewGroup.java:3599)
I/MonoDroid(18475):     at
android.view.ViewGroup$MarginLayoutParams.<init>(ViewGroup.java:3678)
I/MonoDroid(18475):     at
android.widget.LinearLayout$LayoutParams.<init>(LinearLayout.java:1400)
I/MonoDroid(18475):     at
android.widget.LinearLayout.generateLayoutParams(LinearLayout.java:1326)
I/MonoDroid(18475):     at
android.widget.LinearLayout.generateLayoutParams(LinearLayout.java:47)
I/MonoDroid(18475):     at
android.view.LayoutInflater.rInflate(LayoutInflater.java:625)
I/MonoDroid(18475):     at
android.view.LayoutInflater.inflate(LayoutInflater.java:408)
I/MonoDroid(18475):     at
android.view.LayoutInflater.inflate(LayoutInflater.java:320)
I/MonoDroid(18475):     at
nspublic.androidclient.adapters.UpdateFreqAdapter.n_getView(Native
Method)
I/MonoDroid(18475):     at
nspublic.androidclient.adapters.UpdateFreqAdapter.getView(UpdateFreqAdapter.java:52)
I/MonoDroid(18475):     at
android.widget.AbsSpinner.onMeasure(AbsSpinner.java:192)
I/MonoDroid(18475):     at android.view.View.measure(View.java:8366)
I/MonoDroid(18475):     at
android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138)
I/MonoDroid(18475):     at
android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1017)
I/MonoDroid(18475):     at
android.widget.LinearLayout.measureVertical(LinearLayout.java:386)
I/MonoDroid(18475):     at
android.widget.LinearLayout.onMeasure(LinearLayout.java:309)
I/MonoDroid(18475):     at android.view.View.measure(View.java:8366)
I/MonoDroid(18475):     at
android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138)
I/MonoDroid(18475):     at
android.widget.FrameLayout.onMeasure(FrameLayout.java:250)
I/MonoDroid(18475):     at android.view.View.measure(View.java:8366)
I/MonoDroid(18475):     at
android.widget.LinearLayout.measureVertical(LinearLayout.java:531)
I/MonoDroid(18475):     at
android.widget.LinearLayout.onMeasure(LinearLayout.java:309)
I/MonoDroid(18475):     at android.view.View.measure(View.java:8366)
I/MonoDroid(18475):     at
android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138)
I/MonoDroid(18475):     at
android.widget.FrameLayout.onMeasure(FrameLayout.java:250)
I/MonoDroid(18475):     at android.view.View.measure(View.java:8366)
I/MonoDroid(18475):     at
android.view.ViewRoot.performTraversals(ViewRoot.java:847)
I/MonoDroid(18475):     at
android.view.ViewRoot.handleMessage(ViewRoot.java:1868)
I/MonoDroid(18475):     at android.os.Handler.dispatchMessage(Handler.java:99)
I/MonoDroid(18475):     at android.os.Looper.loop(Looper.java:123)
I/MonoDroid(18475):     at
android.app.ActivityThread.main(ActivityThread.java:3691)
I/MonoDroid(18475):     at java.lang.reflect.Method.invokeNative(Native Method)
I/MonoDroid(18475):     at java.lang.reflect.Method.invoke(Method.java:507)
I/MonoDroid(18475):     at
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:847)
I/MonoDroid(18475):     at
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:605)
I/MonoDroid(18475):     at dalvik.system.NativeStart.main(Native Method)

On Fri, Sep 30, 2011 at 6:00 PM, Jonathan Pryor <[email protected]> wrote:
> What's the exact exception that you're getting, complete with stack trace?
>
> Also, most code I've seen uses `LayoutInflater.Inflate(...)`, not 
> `LayoutInflater.From(context).Inflate(...)`. Could you try skipping the 
> `LayoutInflater.From(context)` call and use `LayoutInflater.Inflate()` 
> instead?
>
> Thanks,
>  - Jon
>
> On Sep 30, 2011, at 10:23 AM, Tomasz Cielecki wrote:
>
>> Hello there,
>>
>> I am trying to implement the BaseAdapter to use with my Spinner, as
>> the data I want to bind to it is not just a string array. So I am
>> attempting to implement it, but it keeps throwing an exception that
>> the LayoutInflaters Inflate method is an Unkown Member.
>>
>> My GetView method looks like this:
>>
>>        public override View GetView(int position, View convertView,
>> ViewGroup parent)
>>        {
>>            UpdateFrequencyViewModel item =
>> updateFrequencyCollectionViewModel.ElementAt(position);
>>
>>            var inflater = LayoutInflater.From(context);
>>            var view = convertView ??
>> inflater.Inflate(Resource.Layout.spinneritem, parent, false);
>>
>>            var text = view.FindViewById(Resource.Id.text) as TextView;
>>
>>            text.SetText(item.Text, TextView.BufferType.Normal);
>>
>>            if (!_views.Contains(view))
>>                _views.Add(view);
>>
>>            return view;
>>        }
>>
>> Am I getting the wrong LayoutInflater or what am I doing wrong?
>>
>> --
>> Med Venlig Hilsen / With Best Regards
>> Tomasz Cielecki
>> http://ostebaronen.dk
>> _______________________________________________
>> Monodroid mailing list
>> [email protected]
>>
>> UNSUBSCRIBE INFORMATION:
>> http://lists.ximian.com/mailman/listinfo/monodroid
>
> _______________________________________________
> Monodroid mailing list
> [email protected]
>
> UNSUBSCRIBE INFORMATION:
> http://lists.ximian.com/mailman/listinfo/monodroid
>



-- 
Med Venlig Hilsen / With Best Regards
Tomasz Cielecki
http://ostebaronen.dk
_______________________________________________
Monodroid mailing list
[email protected]

UNSUBSCRIBE INFORMATION:
http://lists.ximian.com/mailman/listinfo/monodroid

Reply via email to