آموزش ویجت در برنامه نویسی اندروید

3 سال پیش

آموزش ویجت در برنامه نویسی اندروید

در این درس از مجموعه آموزش برنامه نویسی سایت سورس باران، در مورد آموزش ویجت در برنامه نویسی اندروید صحبت خواهیم کرد.

 

ویجت یک ابزار کوچک یا کنترل برنامه اندرویدی شما است که روی صفحه اصلی قرار دارد. ابزارک ها بسیار مفید هستند زیرا به شما امکان می دهند برنامه های مورد علاقه خود را برای دسترسی سریع به صفحه اصلی خود قرار دهید. احتمالاً برخی از ویجت های رایج مانند ویجت موسیقی، ویجت آب و هوا، ویجت ساعت و غیره را دیده اید.

ویجت ها می توانند انواع مختلفی مانند ابزارک های اطلاعاتی ، ابزارک های جمع آوری ، ابزارک های کنترل و ابزارک های ترکیبی داشته باشند.

اندروید یک فریم ورک کامل برای توسعه ابزارک های خود به ما ارائه می دهد.

ویجت در برنامه نویسی اندروید – فایل XML

برای ایجاد ویجت برنامه، اولین چیزی که شما نیاز دارید شی AppWidgetProviderInfo است که آن را در یک فایل XML ویجت جداگانه تعریف خواهید کرد.

برای انجام این کار، بر روی پروژه خود کلیک راست کرده و پوشه جدیدی به نام xml ایجاد کنید.

اکنون بر روی پوشه ایجاد شده راست کلیک کرده و یک فایل XML جدید ایجاد کنید.

نوع منبع فایل XML باید روی AppWidgetProvider تنظیم شود. در فایل xml، برخی از خصوصیات را به صورت زیر تعریف کنید:

<appwidget-provider 
   xmlns:android="http://schemas.android.com/apk/res/android" 
   android:minWidth="146dp" 
   android:updatePeriodMillis="0" 
   android:minHeight="146dp" 
   android:initialLayout="@layout/activity_main">
</appwidget-provider>

ویجت در برنامه نویسی اندروید  – فایل طرح بندی

اکنون باید طرح ویجت خود را در پرونده XML پیش فرض خود تعریف کنید. برای تولید xml خودکار می توانید اجزا را بکشید.

 

ویجت در برنامه نویسی اندروید – فایل جاوا

پس از تعریف طرح، اکنون یک فایل جدید JAVA ایجاد کنید یا از فایل موجود استفاده کنید و آن را با کلاس AppWidgetProvider گسترش دهید و روش بروزرسانی آن را به شرح زیر لغو کنید.

در روش بروزرسانی، شما باید شی دو کلاس را که PendingIntent و RemoteViews هستند را تعریف کنید.

PendingIntent pending = PendingIntent.getActivity(context, 0, intent, 0);
RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.activity_main);

در پایان شما باید با یک متد به روز رسانی ()updateAppWidget  از کلاس AppWidgetManager را فراخوانی کنید.

appWidgetManager.updateAppWidget(currentWidgetId,views);

بخشی از متد updateAppWidget، متد های دیگری نیز برای دستکاری ویجت ها در این کلاس تعریف شده است. آنها به شرح زیر هستند:

  • (onDeleted(Context context, int[] appWidgetIds

وقتی یک نمونه از AppWidgetProvider حذف می شود، این متد فراخوانی می شود.

  • (onDisabled(Context context

این متد با حذف آخرین نمونه AppWidgetProvider فراخوانی می شود

  • (onEnabled(Context context

این متد هنگامی ایجاد می شود که نمونه ای از AppWidgetProvider ایجاد شود.

  • (onReceive(Context context, Intent intent

برای ارسال فراخوانی به متدهای مختلف کلاس استفاده می شود

 

فایل مانیفست

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

<receiver android:name="ExampleAppWidgetProvider" >
   
   <intent-filter>
      <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
   </intent-filter>
   
   <meta-data android:name="android.appwidget.provider"
      android:resource="@xml/example_appwidget_info" />
</receiver>

 

مثال

در اینجا مثالی برای استفاده از ویجت های کاربردی آورده شده است. این برنامه ویجت ایجاد می کند که وب سایت فعلی را در مرورگر باز می کند.

برای آزمایش این مثال، باید این مورد را روی دستگاه واقعی که اینترنت روی آن اجرا می شود، اجرا کنید.

شرح مراحل 

۱- شما برای ایجاد یک برنامه اندروید تحت یک پکیج com.example.sairamkrishna.myapplication از Android studio استفاده خواهید کرد.
۲- برای افزودن کد ویجت، فایل src / MainActivity.java را تغییر دهید.
۳- res / layout / activity_main را تغییر دهید تا مولفه های XML مربوطه اضافه شود
۴- یک پوشه و پرونده xml جدید در قسمت res / xml / mywidget.xml ایجاد کنید تا اجزای مربوط به XML را اضافه کنید
۵- برای افزودن مجوزهای لازم، AndroidManifest.xml را تغییر دهید
۶- برنامه را اجرا کنید و دستگاه اندرویدی در حال اجرا را انتخاب کنید و برنامه را روی آن نصب کنید و نتایج را بررسی کنید.

در زیر محتوای MainActivity.java اصلاح شده آورده شده است.

package com.example.sairamkrishna.myapplication;

import android.app.PendingIntent;
import android.appwidget.AppWidgetManager;
import android.appwidget.AppWidgetProvider;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.widget.RemoteViews;
import android.widget.Toast;

public class MainActivity extends AppWidgetProvider{
   public void onUpdate(Context context, AppWidgetManager appWidgetManager,int[] appWidgetIds) {
      for(int i=0; i<appWidgetIds.length; i++){
         int currentWidgetId = appWidgetIds[i];
         String url = "http://www.tutorialspoint.com";
         
         Intent intent = new Intent(Intent.ACTION_VIEW);
         intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
         intent.setData(Uri.parse(url));
         
         PendingIntent pending = PendingIntent.getActivity(context, 0,intent, 0);
         RemoteViews views = new RemoteViews(context.getPackageName(),R.layout.activity_main);
         
         views.setOnClickPendingIntent(R.id.button, pending);
         appWidgetManager.updateAppWidget(currentWidgetId,views);
         Toast.makeText(context, "widget added", Toast.LENGTH_SHORT).show();
      }
   }
}

در زیر محتوای اصلاح شده xml res / layout / activity_main.xml آمده است.

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
   android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
   android:paddingRight="@dimen/activity_horizontal_margin"
   android:paddingTop="@dimen/activity_vertical_margin"
   android:paddingBottom="@dimen/activity_vertical_margin"
   tools:context=".MainActivity"
   android:transitionGroup="true">
   
   <TextView
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Tutorials point"
      android:id="@+id/textView"
      android:layout_centerHorizontal="true"
      android:textColor="#ff3412ff"
      android:textSize="35dp" />
      
   <Button
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="Widget"
      android:id="@+id/button"
      android:layout_centerHorizontal="true"
      android:layout_marginTop="61dp"
      android:layout_below="@+id/textView" />

</RelativeLayout>

در زیر محتوای res / xml / mywidget.xml آمده است.

<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider 
   xmlns:android="http://schemas.android.com/apk/res/android" 
   android:minWidth="146dp" 
   android:updatePeriodMillis="0" 
   android:minHeight="146dp" 
   android:initialLayout="@layout/activity_main">
</appwidget-provider>

در زیر محتوای res / values / string.xml آمده است.

<resources>
   <string name="app_name">My Application</string>
</resources>

در زیر محتوای فایل AndroidManifest.xml آمده است.

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
   package="com.example.sairamkrishna.myapplication" >
   
   <application
      android:allowBackup="true"
      android:icon="@mipmap/ic_launcher"
      android:label="@string/app_name"
      android:theme="@style/AppTheme" >
      <receiver android:name=".MainActivity">
      
      <intent-filter>
         <action android:name="android.appwidget.action.APPWIDGET_UPDATE"></action>
      </intent-filter>
      
      <meta-data android:name="android.appwidget.provider"
         android:resource="@xml/mywidget"></meta-data>
      
      </receiver>
   
   </application>
</manifest>

بیایید برنامه را اجرا کنیم. من تصور می کنم شما AVD خود را هنگام راه اندازی محیط ایجاد کرده اید. برای اجرای برنامه از Android studio، یکی از پرونده های فعالیت پروژه خود را باز کنید و از نوار ابزار روی Android StudioRun Icon کلیک کنید. Android Studio برنامه را روی AVD شما نصب کرده و شروع به کار می کند و اگر با تنظیمات و برنامه هایتان همه چیز خوب باشد، زیر پنجره شبیه ساز نمایش داده می شود.

 

دستگاه همراه خود را به عنوان گزینه انتخاب کنید و سپس دستگاه همراه خود را که صفحه پیش فرض شما را نشان می دهد بررسی کنید

به بخش ویجت خود بروید و ویجت ایجاد شده خود را به دسک تاپ یا صفحه اصلی اضافه کنید.

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

توجه داشته باشید. فقط با تغییر URL در فایل java، ویجت شما وب سایت مورد نظر شما را در مرورگر باز می کند.

 

منبع.

لیست جلسات قبل آموزش برنامه نویسی اندروید

    1. نگاهی کلی به برنامه نویسی اندروید
    2. تنظیمات محیط  در برنامه نویسی اندروید
    3. معماری برنامه نویسی اندروید
    4. اجزای برنامه در برنامه نویسی اندروید
    5. Hello World در برنامه نویسی اندروید
    6. سازماندهی و دسترسی به منابع در برنامه نویسی اندروید
    7. فعالیت در برنامه نویسی اندروید
    8. سرویس در برنامه نویسی اندروید
    9. گیرنده های پخش در برنامه نویسی اندروید
    10. ارائه دهنده محتوا در برنامه نویسی اندروید
    11. قطعات در برنامه نویسی اندروید
    12. Intent و فیلتر در برنامه نویسی اندروید
    13. طرح بندی رابط کاربری در برنامه نویسی اندروید
    14. کنترل های رابط کاربری در برنامه نویسی اندروید
    15. مدیریت رویدادها در برنامه نویسی اندروید
    16. استایل و تم ها در برنامه نویسی اندروید
    17. اجزای سفارشی در برنامه نویسی اندروید
    18. کشیدن و رها کردن در برنامه نویسی اندروید
    19. نوتیفیکیشن ها در برنامه نویسی اندروید
    20. سرویس های مبتنی بر مکان در برنامه نویسی اندروید
    21. ارسال ایمیل در برنامه نویسی اندروید
    22. ارسال پیامک در برنامه نویسی اندروید
    23. تماس های تلفنی در برنامه نویسی اندروید
    24. انتشار برنامه اندروید
    25. آموزش Alert Dialog در برنامه نویسی اندروید
    26. انیمیشن در برنامه نویسی اندروید
    27. ضبط صدا در برنامه نویسی اندروید
    28. مدیریت صدا در برنامه نویسی اندروید
    29. آموزش Auto Complete در برنامه نویسی اندروید
    30. بهترین شیوه ها در برنامه نویسی اندروید
    31. بلوتوث در برنامه نویسی اندروید
    32. استفاده از دوربین در برنامه نویسی اندروید
    33. کلیپ بورد در برنامه نویسی اندروید
    34. فونت سفارشی در برنامه نویسی اندروید
    35. پشتیبان گیری از داده ها در برنامه نویسی اندروید
    36.  ابزارهای توسعه دهنده در برنامه نویسی اندروید
    37. آموزش شبیه ساز در برنامه نویسی اندروید
    38. اتصال به فیس بوک در برنامه نویسی اندروید
    39. حرکات لمسی در برنامه نویسی اندروید
    40. آموزش گوگل مپ در برنامه نویسی اندروید
    41. افکت های تصویر در برنامه نویسی اندروید
    42. Image Switcher در برنامه نویسی اندروید
    43. حافظه داخلی در برنامه نویسی اندروید
    44. آموزش کار با JetPlayer در برنامه نویسی اندروید
    45. JSON Parser در برنامه نویسی اندروید
    46. ارتباط با LinkedIn در برنامه نویسی اندروید
    47. نوار پیشرفت Spinner در برنامه نویسی اندروید
    48. بومی سازی در برنامه نویسی اندروید
    49. صفحه Login در برنامه نویسی اندروید
    50. MediaPlayer در برنامه نویسی اندروید
    51. Multitouch در برنامه نویسی اندروید
    52. Navigation در برنامه نویسی اندروید
    53. اتصال به اینترنت در برنامه نویسی اندروید
    54. NFC در برنامه نویسی اندروید
    55. PHP و MYSQL در برنامه نویسی اندروید
    56. Progress Circle دربرنامه نویسی اندروید
    57. Progress Bar در برنامه نویسی اندروید
    58. Push Notification در برنامه نویسی اندروید
    59. RenderScript در برنامه نویسی اندروید
    60. RSS Reader در برنامه نویسی اندروید
    61. Screen cast در برنامه نویسی اندروید
    62. SDK Manager در برنامه نویسی اندروید
    63. سنسورها در برنامه نویسی اندروید
    64. Session در برنامه نویسی اندروید
    65. Shared Preferences در برنامه نویسی اندروید
    66. پروتکل SIP در برنامه نویسی اندروید
    67. Spelling Checker در برنامه نویسی اندروید
    68. پایگاه داده SQLite در برنامه نویسی اندروید
    69. Support Library در برنامه نویسی اندروید
    70. تست برنامه های اندروید
    71. قابلیت متن به گفتار در برنامه نویسی اندروید
    72. TextureView در برنامه نویسی اندروید
    73. اتصال به توییتر در برنامه نویسی اندروید
    74. طراحی رابط کاربری در برنامه نویسی اندروید
    75. الگوهای رابط کاربری در برنامه نویسی اندروید
    76. تست رابط کاربری در برنامه نویسی اندروید
    77. آموزش WebView در برنامه نویسی اندروید
    78. آموزش wifi در برنامه نویسی اندروید
0
برچسب ها :
نویسنده مطلب erfan molaei

دیدگاه شما

بدون دیدگاه