رفتن به مطلب
  • 0

ArrayAdapter یا BaseAdapter ؟! مزایا و معایب هر یک؟!


Kazem Forghani

سوال

سلام ،

دو آموزش درباره لیست در انجمن موجود هست یکی بوسیله ArrayAdapter یک بوسیله BaseAdapter !

می خواستم ببینم سرعت کدوم بیشتره؟ مزایا و معایت هر کدوم؟

دوستان لطفاٌ راهنمایی کنید سر دو راهی قرار گرفتم.

با تشکر

لینک ارسال
به اشتراک گذاری در سایت های دیگر

4 پاسخ به این سوال تاکنون داده شده است

ارسال‌های توصیه شده

ببینید از اسمشون معلومه ، ArrayAdapter برای ادپترهاییه که میخواین از آرایه یا لیست یا دیتابیس استفاده کنید و کد نویسیش نسبت به BaseAdapter کمتره (ArrayAdapter  یه کلس از BaseAdapter یعنی به BaseAdapter اکستند شده)

یعنی خود ArrayAdapter  نسبت به لیست یا آرایه ای که بهش دادین تعداد رو تشخیص میده و فقط شما نیاز به تغییر یا overide کردن متد getView دارین ،

 

یه نمونه ساده از ArrayAdapter :

class MyArrayAdapter extends ArrayAdapter<String> {
public MyArrayAdapter(Context context, int resource, int textViewResourceId, String[] objects) {
super(context, resource, textViewResourceId, objects);
}
        }
        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            inflater....
            TextView txt= find.....;
            txt.setText(getItem(position));
            return ...;
        }
    } 
        MyArrayAdapter adapter = new MyArrayAdapter(this,R.layout.felan,new String[]{"1","2","3"});
        listView.setAdapter(adapter); 

به همین سادگی ، ولی BaseAdapter یه اپتر کامل که شما باید کد نویسی بیشتری انجام بدین و حتما باید 4 تا متد اصلی رو override کنین و شخصی سازی کنید 

یه نمونه BaseAdapter

 class MyBaseAdapter extends BaseAdapter {
        
        @Override
        public int getCount() {
            return 0;
        }

        @Override
        public Object getItem(int i) {
            return null;
        }

        @Override
        public long getItemId(int i) {
            return 0;
        }

        @Override
        public View getView(int i, View view, ViewGroup viewGroup) {
            return null;
        }
    }
لینک ارسال
به اشتراک گذاری در سایت های دیگر

کاظم جان نمیشه گفت نسبت به هم ارجحیت یا برتری دارن یانه

اولا baseadapter یه سوپر کلس برای arrayadapter هست یعنی arrayadapt از baseadapt مشتق شده این یعنی اینکه  arrayadapt  همه ویژگی های  baseadapt رو به ارث میبره به علاوه یه چیزهای دیگه

دوما : معمولا تو برنامه نویسی جاوا کسی نمیاد و مستقیم از اینها استفاده کنه چون درنهایت مجبورید که آداپتور سفارشی خودتون رو درست کنید واسه همین معمولا باید یه کلس که مشتق شده از یکی از این دوتا هست رو ایجاد کنید که معمولا  به جای به ارث بردن مستقیم از کلاس  baseadapt ، کلاس ArrayAdapterرا به ارث میبرند، و این به خاطر ساده تر بودن فرایند دومی نسبت به اولی هست.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام و تشکر فراوان بابت پاسخگویی ،

یعنی BaseAdapter و ArrayAdapter هیچ تفاوتی در کارایی و سرعت ندارن و از هر کدوم استفاده کنیم در نهایت تفاوتی ندارن؟!

لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام و تشکر فراوان بابت پاسخگویی ،

یعنی BaseAdapter و ArrayAdapter هیچ تفاوتی در کارایی و سرعت ندارن و از هر کدوم استفاده کنیم در نهایت تفاوتی ندارن؟!

 

درسته فقط نسبت به استفاده ای که دارین میتونین از هرکدوم استفاده کنین.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...