Mostafa Nasiri 16 ارسال شده در ۹ دی ۱۳۹۴ گزارش اشتراک گذاری ارسال شده در ۹ دی ۱۳۹۴ سلام دوستان امروز میخوام یکی از ساده ترین و کاربردی ترین کتابخانه هایی که برای اندروید نوشته شده رو بهتون معرفی کنم: ButterKnife [align=right]همونطور که میدونید در هر برنامه اندرویدی شما برای اینکه بتونید به عناصر layout هاتون در کد جاوا دسترسی داشته باشید مجبورید تا از متد findViewById استفاده کنید که در این صورت اگر ویجت هاتون زیاد باشن اونوقت باید این متد رو دائما فراخوانی کنید. کاری که این کتابخونه میکنه اینه که شما رو از این کار بی نیاز میکنه! یعنی بهتر بگم: این کتابخونه ایه که شما باید در تمام پروژه هاتون ازش استفاده کنید![/align] [align=right]ابتدا در فایل Build.Gradle خط زیر رو به قسمت dependencies اضافه کنید و Gradle رو sync کنید:[/align] compile 'com.jakewharton:butterknife:7.0.1' من در پروژم یک فایل layout دارم که درون این فایل فقط یک دکمه قرار داره id این دکمه btn هست: android:id="@+id/btn" android:text="GO!" android:layout_width="wrap_content" android:layout_height="wrap_content" /> حالا وقتی میخوام در فایل اکتیویتی به این دکمه دسترسی داشته باشم و براش رویداد تعریف کنم به جای طی کردن روال عادی، به صورت زیر عمل می کنم: public class MainActivity extends AppCompatActivity { @Bind(R.id.btn) Button button; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ButterKnife.bind(this); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Toast.makeText(MainActivity.this, "Clicked!", Toast.LENGTH_SHORT).show(); } }); } } به خط اول در کلاس MainActivity دقت کنید: ما با همین کار ساده در یک لحظه هم دکمه رو تعریف کردیم و هم کار findViewById رو انجام دادیم! فقط در یک خط! قدرت این کتابخونه در اینجا مشخص میشه. (Bind یک Annotation هست نه متد) همچنین در متد onCreate بعد از setContentView باید خط زیر رو بنویسیم (در کد بالا هم میبینید): ButterKnife.bind(this); شاید با یک ویجت خیلی فایده این کتابخونه معلوم نشه اما همین کد رو فرض کنید وقتی که ۱۰ تا ویجت در layout مون داشته باشیم! میبینید که چقدر حجم کد کم میشه! نکته: در این کتابخونه برای تعریف رویداد هم روشی وجود داره که به نظرم خیلی جالب نیست برای همین اینجا نیاوردم. اطلاعات بیشتر: https://github.com/JakeWharton/butterknife موفق باشید 1 نقل قول لینک ارسال به اشتراک گذاری در سایت های دیگر
Seyed-Hossein-Akbari 92 ارسال شده در ۹ دی ۱۳۹۴ گزارش اشتراک گذاری ارسال شده در ۹ دی ۱۳۹۴ سلام خوب بود . اما فایند کردن هم یک خطه!!!! پس به نظرم لزومی نداره از این کتابخونه استفاده بشه . درضمن استفاده از کتابخانه خودش حجم میگیره ! پس حجم برنامه نویسی هم کم نمیشه . موفق باشید... نقل قول لینک ارسال به اشتراک گذاری در سایت های دیگر
Mostafa Nasiri 16 ارسال شده در ۹ دی ۱۳۹۴ مالک گزارش اشتراک گذاری ارسال شده در ۹ دی ۱۳۹۴ سلام خوب بود . اما فایند کردن هم یک خطه!!!! پس به نظرم لزومی نداره از این کتابخونه استفاده بشه . درضمن استفاده از کتابخانه خودش حجم میگیره ! پس حجم برنامه نویسی هم کم نمیشه . موفق باشید... سلام مرسی فایند کردن یک خطه در صورتی که ویجت هاتون local variable تعریف شده باشند نه class field اما اگر ویجت هاتون رو فیلد تعریف کنید و بعد بخواید فایند کنید اونموقع دو خط میشه!!! مثل تعریف 10 فیلد از نوع Button و فایند کردن اونها در onCreate !!! منظورم حجم کدنویسی بود! حجم کتابخونه بسیار ناچیزه و در نهایت که خروجی بگیریم تاثیر بسیار کمی در حجم برنامه داره که به راحتی کدنویسی کاملا می ارزه! موفق باشید نقل قول لینک ارسال به اشتراک گذاری در سایت های دیگر
پست های پیشنهاد شده
به گفتگو بپیوندید
هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .