ویجت صفحه اصلی اندروید- قسمت دوم: ایجاد ویدجت برودکست

ویجت صفحه اصلی اندروید- قسمت دوم: ایجاد ویدجت برودکستReviewed by آریانا on Feb 22Rating: 5.0ویجت صفحه اصلی اندروید- قسمت دوم: ایجاد ویدجت برودکستویجت صفحه اصلی اندروید- قسمت دوم: ایجاد ویدجت برودکست

شما در قسمت اول، اطلاعات اولیه راجع به ویدجت در برنامه نویسی اندروید کسب کردید و همچنین روش ایجاد یک ویدجت ساده را یاد گرفتید. امروز می خواهم نحوه ایجاد ویدجتی را به شما آموزش دهم که هنگام کلیک روی آن، اطلاعاتش آپدیت می شود(هر کلیک روی ویدجت می تواند یک broadcast را ارسال کند و در آن زمان در TextView نشان دهد.

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

درباره RemoteView :

در قسمت اول ما در مورد RemoteViews و widget layout صحبت نکرده ایم و الان می خواهیم برخی ویژگی های اصلی آنها را توضیح دهیم. البته شما اول باید یک طرح اولیه یا (initial layout ) برای ویجت خود در XML  تعریف کنید و آن را در آدرس res/layout/ directory در پروژه تان ذخیره نمایید. در این مثال به صورت زیر باید عمل کنید:

widget_broadcast.xml

 

اگر شما با Layout ها آشنا باشید، ایجاد یک widget layout برای ویدجت خیلی راحت است. به هر حال شما باید بدانید که layout های ویدجت بر اساس RemoteViews هستند و به وسیله هر نوع layout یا view widget پشتیبانی نمی شوند.

یک شئ RemoteViews ( و در نتیجه یک ویدجت) می تواند توسط کلاس های زیر پشتیبانی شود.

و از کلاس های ویجت زیر پیروی می کنند:

AnalogClock, Button, Chronometer, ImageButton, ImageView, ProgressBar, TextView, ViewFlipper, ListView, GridView, StackView,  و AdapterViewFlipper.

فرزندان این کلاس ها پشتیبانی نمی شوند. همچنین RemoteViews ، از ViewStub پشتیبانی می کند که نامرئی است و اندازه های نمایش آن می تواند صفر باشد و می تواند برای منابع layout ها در زمان اجرا استفاده شود.

به روز رسانی ویدجت هنگام کلیک کردن – کدهای برنامه نویسی:

شما همیشه باید یک زیرکلاس برای AppWidgetProvider جهت مدیریت چرخه عمر ویدجت ایجاد کنید. لطفا یک نگاهی به این کلاس برای اولین بار بیندازید:

BroadcastWidget.java

 

در مثال قبلی ما از getActivity() استفاده کردیم، حالا می خواهیم از getBroadcast()  برای زمانی که دستور AppWidgetManager جهت به روزرسانی ویدجت داده می شود، استفاده کنیم .

برای گرفتن زمان فعلی، من از java.util.Calendar استفاده می کنم و راه دیگری که شما می توانید از آن استفاده نمایید، Date instance می باشد.

وقتی کاربر روی TextView کلیک می کند، onReceive() فراخوانی می شود و در این متد ما زمان فعلی را می گیریم و آن را توسط TextView نشان می دهیم.

توجه داشته باشید که شما می توانید هر آنچه را که می خواهید با برودکست  بفرستید و یا هر آنچه که می خواهید با برودکست به دست بیاورید.

اجرای اپلیکیشن

فقط کد پیش فرض MainActivity را نگه دارید، اپلیکیشن را اجرا کنید و متن “Hello, World” را خواهید دید:

و ویدجت نصب شده است. شما می توانید آن را از تب WIDGETS روی دستگاهتان پیدا کنید. برای استفاده ، آن را بگیرید و روی صفحه اصلی درگ کنید.

و حالا روی widget text کلیک کنید:

من رد این پست فقط یک مثال و ویژگی دیگر از ویدجت در برنامه نویسی اندروید، یعنی به روز رسانی اطلاعات هنگام کلیک روی ویدجت را مطرح کردم. امیدوارم این پست برای شما مفید بوده باشد. در قسمت بعدی راجع به تنظیم ویدجت توسط یک اکتیویتی صحبت خواهیم کرد.

 

پاسخ دهید