впервые приложение для программирования Android с использованием MonoDevelop (C #) не могу понять ошибку - PullRequest
0 голосов
/ 01 апреля 2012
Error CS0508: 'my_android_project.ImageAdapter.GetItem(int)': return type must be 'Java.Lang.Object' to match overridden member 'Android.Widget.BaseAdapter.GetItem(int)

Вот мой первый класс:

using System;

using Android.App;
using Android.Content;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using Android.OS;

namespace my_android_project
{
    [Activity (Label = "my_android_project", MainLauncher = true)]
    public class Activity1 : Activity
    {
        int count = 1;

        protected override void OnCreate (Bundle bundle)
        {
            base.OnCreate (bundle);

            // Set our view from the "main" layout resource
            SetContentView (Resource.Layout.Main);
            var gridview = FindViewById<GridView> (Resource.Id.gridview); 
            gridview.ItemClick += delegate(object sender, ItemEventArgs args) { 
                Toast.MakeText (this, EventArgs.Postion.ToString () , ToastLength.Short).Show(); 
            }; 

            // Get our button from the layout resource,
            // and attach an event to it
            Button button = FindViewById<Button> (Resource.Id.myButton);

            button.Click += delegate {
                button.Text = string.Format ("{0} clicks!", count++); };
        }
    }
}

Второй класс:

using System;
using Android.App;
using Android.Content;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using Android.OS;

namespace my_android_project
{
    // base class is ImageAdapter , derived class is BaseAdapter 

    /// <summary>
    /// class start 
    /// </summary> 
    public class ImageAdapter : BaseAdapter
{
    private readonly Context context;

    public ImageAdapter(Context c)
    {
        context = c;
    }

    public override int Count
    {
        get { return thumbIds.Length; }
    }

    public override Object GetItem(int position)
    {
        return null;
    }

    public override long GetItemId(int position)
    {
        return 0;
    }

        public override View GetView(int position, View convertView, ViewGroup parent)
    {
        ImageView imageView;

        if (convertView == null)
        {
            // if it's not recycled, initialize some attributes
            imageView = new ImageView(context);
            imageView.LayoutParameters = new AbsListView.LayoutParams(85, 85);
            imageView.SetScaleType(ImageView.ScaleType.CenterCrop);
            imageView.SetPadding(8, 8, 8, 8);
        }
        else
        {
            imageView = (ImageView) convertView;
        }
        imageView.SetImageResource(thumbIds[position]);
        return imageView;
    } // end of GetView 

        private readonly int[] thumbIds = { 
                                            Resource.Drawable.sample_2, 
                                          Resource.Drawable.sample_3,
                                          Resource.Drawable.sample_4, 
                                          Resource.Drawable.sample_5,
                                          Resource.Drawable.sample_6, 
                                          Resource.Drawable.sample_7,
                                          Resource.Drawable.sample_0, 
                                          Resource.Drawable.sample_1,
                                          Resource.Drawable.sample_2, 
                                          Resource.Drawable.sample_3,
                                          Resource.Drawable.sample_4, 
                                          Resource.Drawable.sample_5,
                                          Resource.Drawable.sample_6, 
                                          Resource.Drawable.sample_7,
                                          Resource.Drawable.sample_0, 
                                          Resource.Drawable.sample_1,
                                          Resource.Drawable.sample_2, 
                                          Resource.Drawable.sample_3,
                                          Resource.Drawable.sample_4, 
                                          Resource.Drawable.sample_5,
                                          Resource.Drawable.sample_6, 
                                          Resource.Drawable.sample_7        


        }; // end of thumbIds array 


    } // end of class
} // end of namespace 

выглядит так, как в строке 32 моего 2-го класса Mono Develop не нравится это 'null'вернитесь ..

есть идеи?Я нахожусь в процессе изучения C # и немного более удобен с этим, что приложение для Android Dev :)

1 Ответ

0 голосов
/ 01 апреля 2012

Проблема на самом деле ваш второй метод GetItem (). Базовый класс определяет абстрактный object getItem(int position) (для http://developer.android.com/reference/android/widget/BaseAdapter.html), поэтому ваш второй метод ничего не переопределяет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...