کاوش اندیشه P برش: برش های تعاملی و پویا

ایجاد کار سخت نیست بیش از فقط به خاطر اینکه شما با موفقیت برنامه خود را منتشر و ساخته شده است تا پایگاه کاربر. هنگامی که شما مخاطبان خود را پیدا کرده ام، شما نیاز به آویزان بر روی آنها!

که امسال من/خروجی، گوگل اعلام کرد برش آندروید از ویژگی های جدید به کمک کاربران با درخواست خود را مشغول نگه دارید. برش اندیشه در مکان های که در آن بسیاری از کاربران آندروید صرف بسیاری از زمان، بنابراین آنها یک راه موثر برای نگه داشتن کاربران آینده به درخواست خود را از جمله نتایج جستجوی گوگل ظاهر می شود.

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

برش اندیشه چیست؟

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

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

تصور کنید شما نصب app برای رزرو بلیط برای سینمای محلی خود را. دفعه بعد که شما Googling آخرین فیلمهای شما نتایج جستجوی معمولی و شاید که برنامه «کتاب، هم» قاچ کنید. این اجازه می دهد تا به شما در رزرو بلیط برای دیدن این فیلم در سینما های محلی خود را بدون نیاز به حرکت به دور از نتایج جستجوی خود را.

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

بنابراین آنها را در همه چیز، از اندیشه 4.4 پشتیبانی کنید بعد برش اندیشه نیز بخشی از Jetpack اندیشه است. به گفته گوگل اگر برش را به پروژه خود اضافه برش پتانسیل رسیدن به 95 درصد از تمام کاربران آندروید دارید!

شما قطعه اول ایجاد برش

می تواند انجام مجموعه اقدامات، اما بیایید نگهداری چیزهای در حال حاضر ساده و ایجاد یک تکه است که ما استفاده MainActivity راه اندازی شد.

با ایجاد یک پروژه جدید با استفاده از آخرین ساخت قناری اندیشه استودیو 3.2 شروع و سپس پروژه شما ساخت. gradle فایل و باز اضافه کنید androidx. تکه وابسته. برای نگه داشتن چیزهای سازگار، من همچنین فضای AndroidX برای وابستگی های دیگر استفاده می کنم. وابستگی

 {اجرای fileTree (شما: 'libs' شامل: ['*.jar']) اجرای ' androidx. appcompat: appcompat: 1.0.0-alpha1 'اجرای' androidx. constraintlayout: constraintlayout: 1.1.0 ' اجرای ' androidx خلال: خلال هسته: 1.0.0-alpha2 'اجرای' androidx. تکه: سازندگان قطعه: junit 'testImplementation' 1.0.0-alpha2: junit: 4.12' androidTestImplementation ' androidx-test: دونده: 1.1.0-alpha1 'androidTestImplementation' androidx test. اسپرسو: اسپرسو هسته: 3.1.0-alpha1 '} 

در زمان نگارش روند ایجاد یک تکه گاهی ناشی از استودیو اندیشه برای افزودن خودکار وابسته برش هسته و سازندگان قطعه تکراری. اگر مواجهه با پیغام خطا عجیب بررسی ساخت . gradle فایل شما برای اطمینان از این اتفاق افتاده.

ایجاد برش دهنده

تکه جزء است که امکان نمایش برش خارج از برنامه خود را در نتایج جستجوی گوگل است.

برای ایجاد کننده تکه:

  • کنترل کلیک کردم پروژه شما بسته “src”، دو جدید… > دیگر > برش دهنده .
  • نام این قطعه ارائه دهنده “MySliceProvider.”
  • کلیک کنید “پایان”.

هر بار که برنامه میزبان نیاز برای نمایش یک تکه، آن درخواست اتصال به دهنده تکه، با یکنواخت منبع شناسه (URI) قاچ می خواهد آن را برای نمایش ارسال. ارائه دهنده قطعه سپس تماس () onCreateSliceProvider و ساخت تکه با تماس onBindSlice () روش . در نهایت، onBindSlice () روش را تکه بازگشت و تصویب آن را به نرم افزار میزبان.

اگر کلاس MySliceProvider خود را به باز کردن کد به صورت خودکار فراهم می کند مروری بر روند این:

 واردات اندیشه. محتوای. ContentResolver;
اندیشه. محتوای. زمینه واردات;
اندیشه. محتوای. قصد وارد کردن;
اندیشه. خالص. نوع واردات;

androidx. مشخصه. NonNull واردات;
واردات androidx حاشیه نویسی system.nullable;
androidx. قاچ. تکه وارد;
androidx. قطعه. SliceProvider واردات;
androidx. قاچ. سازندگان. ListBuilder واردات;
androidx. قاچ. سازندگان. ListBuilder. RowBuilder واردات;

ایجاد یک کلاس است که SliceProvider / / گسترش کلاس های عمومی MySliceProvider SliceProvider {//Initialize دهنده قاچ onCreateSliceProvider//@Override عمومی onCreateSliceProvider بولی () {بازگشت درست؛ تماس با
   } @Override @NonNull عمومی Uri onMapIntentToUri (@Nullable قصد قصد) {Uri ساز جدید uriBuilder نوع ساز () =. طرح (ContentResolver. SCHEME_CONTENT);
       اگر (قصد == null) بازگشت uriBuilder. ساخت ()؛
       نوع داده ها = قصد. getData ()؛
       اگر (داده! = تهی && داده. getPath ()! = تهی) {رشته مسیر داده. getPath () =. جایگزین ("/"، "");
           uriBuilder uriBuilder =. مسیر (مسیر);
       } چهار چوب چهار چوب = getContext ()؛
       اگر (متن! = تهی) {uriBuilder uriBuilder =. اقتدار (getPackageName مضمون. ());
       } بازگشت uriBuilder. ساخت ()؛
   } //Build تکه / / عمومی برش onBindSlice (نوع sliceUri) {چهار چوب چهار چوب = getContext ()؛
       اگر (چهار چوب == null) بازگشت {پوچ;
       } //Check مسیر URI / / اگر (sliceUri. getPath (). برابر ("/")) {//Create ListBuilder است که شما می کنید اضافه کردن ردیف به برش خود را / / //Construct ListBuilder ((getContext)، sliceUri) جدید بازگشت ردیف خود را با استفاده از RowBuilder و سپس آنها را به لیست اضافه کنید / /

                   . addRow (RowBuilder جدید (متن، sliceUri). setTitle ("نوع یافت."))

ساخت لیست / /. ساخت ()؛
      } دیگری {بازگشت جدید ListBuilder (چهار چوب، sliceUri). addRow (RowBuilder جدید (متن، sliceUri). setTitle ("نوع نشد."))
                  . ساخت ()؛
       @Override}} / / توجه داشته باشید که ما هنر یک تکه در این مقاله را پوشش نمی / / عمومی خالی onSlicePinned (نوع sliceUri) {//Register هر ناظران است که باید برای مطلع شدن از تغییرات در داده های تکه / /} @Override عمومی onSliceUnpinned خالی (Uri sliceUr در) {نشت //Don ŧ را فراموش کرده ام به unregister هر ناظران برای جلوگیری از حافظه / /}} 

از SliceProvider سازنده است، آن را در پروژه شما بیانیه اعلام است. هنگامی که شما ایجاد کننده تکه با استفاده از استودیو اندیشه با رفتن به جدید … > دیگر > برش دهنده ، این اعلامیه به آشکار خود را به طور خودکار اضافه می شود:

    

                     

ساخت آندروید خود را برش سلامت: اگر این تکه اندیشه می گذرد، برای راه اندازی برنامه ما MainActivity [194ایجادخلالعمل

59008]، ما نیاز به ایجاد برخی از تغییرات در ارائه دهنده تکه: تعریف

SliceAction

شما را یک تکه تعاملی با ایجاد یک یا چند عمل بریدن. SliceAction شامل استفاده از عنوان آیکون و PendingIntent که تعامل با کاربر در برش های خود دسته.

من می روم برای تعریف اقدام تکه تنها برای راه اندازی برنامه ما MainActivity .

 عمومی createActivityAction SliceAction () {قصد قصد = جدید قصد ((getContext)، MainActivity-کلاس);
       بازگشت جدید SliceAction (PendingIntent. getActivity ((getContext) قصد 0، 0), IconCompat-createWithResource (getContext ()، رضا drawable. ic_home)، "راه اندازی MainActivity");
   } 

پس از آن، من می روم به این علامت به عنوان اقدام اولیه تکه هر زمان که تعامل کاربر با هر قسمت برش آن را آغاز کنید:

 createSlice های عمومی تکه (نوع sliceUri) {activityAction SliceAction (createActivityAction) =;... setPrimaryAction (activityAction); 

تعریف خلال مطالب

اگر چه شما می توانید برش اندیشه شما به درجه سفارشی، نهایت templated محتوای آنها. دقیقا نمی تواند از عناصر رابط کاربر یک تکه مثل تعریف طرح نرم افزار از طریق فایل های XML هنگامی که موقعیت.

برای ساخت یک قطعه رابط کاربر، شما نیاز به پیاده سازی ListBuilder ، تعیین نوع ردیف می خواهید نمایش داده و تعریف محتوا برای هر ردیف.

در حال حاضر، بیایید نگهداری چیزهای ساده و اساسی RowBuilder ، که پشتیبانی از همه نوع مطالب زیر استفاده کنید:

  • A مورد عنوان. به نظر می رسد این در آغاز سطر. مورد عنوان می تواند زمان مهر و موم کردن تصویر یا SliceAction.
  • عنوان. این خط از متن قالب بندی شده به عنوان یک عنوان است.
  • زیرنویس. این خط از متن به عنوان متن معمولی قالب بندی است.
  • مورد شروع. این می تواند یک نماد مهر زمان یا SliceAction .
  • آیتم های پایان. اینها مواردی است که در انتهای هر ردیف ظاهر می شود. شما می توانید چند مورد پایان برای هر ردیف عرضه اما فضای موجود برخی از این موارد پایان در دستگاه های خاص نمایش داده نمی شود ممکن است. موارد شروع و پایان یا می توانید برچسب زمان آیکون یا SliceAction.
  • عمل اصلی. این عمل که باعث می خواهید هر زمان که کاربر شیپور خاموشی t باشداو ردیف.

برای نگهداری چیزهای ساده، من برای ایجاد یک ردیف تنها متشکل از عنوان “راه اندازی MainActivity” می روم.

 واردات اندیشه. حدود PendingIntent;
اندیشه. محتوای. قصد وارد کردن;
اندیشه. خالص. نوع واردات;

واردات androidx. هسته. گرافیک. drawable. IconCompat;
androidx. قاچ. تکه وارد;
androidx. قطعه. SliceProvider واردات;
androidx. قاچ. سازندگان. ListBuilder واردات;
androidx. قاچ. سازندگان. SliceAction واردات;

گسترش کلاس های عمومی MySliceProvider SliceProvider {@Override عمومی onCreateSliceProvider بولی () {بازگشت درست؛
   } @Override عمومی برش onBindSlice (نوع sliceUri) {نهایی مسیر رشته = sliceUri. getPath ()؛
       سوئیچ (مسیر) {//Define تکه است نوع; من با استفاده از ' mainActivity ' //case "/ mainActivity": createSlice (sliceUri)؛ بازگشت
       } بازگشت پوچ;
   } عمومی برش createSlice (نوع sliceUri) {activityAction SliceAction = createActivityAction ()؛

ایجاد ListBuilder / / ListBuilder listBuilder = ListBuilder جدید ((getContext)، sliceUri، ListBuilder. بی نهایت);

ایجاد RowBuilder / / ListBuilder-RowBuilder rowBuilder = //Set ListBuilder. RowBuilder (listBuilder) جدید متن عنوان / /. setTitle ("راه اندازی MainActivity.")

تنظیم ردیف عمل اصلی / /. setPrimaryAction (activityAction);

اضافه کردن سطر به ListBuilder / / listBuilder. addRow (rowBuilder);

ساخت لیست / / بازگشت listBuilder. ساخت ()؛
   } عمومی () createActivityAction SliceAction {قصد قصد = جدید قصد ((getContext)، MainActivity-کلاس);
       بازگشت جدید SliceAction (PendingIntent. getActivity ((getContext) قصد 0، 0), IconCompat-createWithResource (getContext ()، رضا drawable. ic_home)، "راه اندازی MainActivity");
   }} 

این همه شما نیاز به ایجاد یک تکه عملکرد است. از آنجا که برش هنوز از ویژگی های تجربی، با این حال، شما نیاز به از طریق hoops چند پرش قبل از اینکه شما می توانید این قطعه را در عمل تجربه.

آزمایش برش اندیشه با قاچ Viewer

در زمان نگارش، شما فقط خود برش آندروید گوگل در قاچ Viewer نرم افزار که تقلید چگونه برش سرانجام در نتایج جستجوی گوگل ظاهر خواهد شد با استفاده از test می تواند.

برای نصب قاچ Viewer:

  • را مطمئن شوید که دستگاه شما آندروید به شما موتور متصل شده و یا خود اندیشه مجازی دستگاه (AVD) تا است و در حال اجرا.
  • دانلود حدود قاچ Viewer
  • حرکت APK قاچ Viewer به پوشه اندیشه/sdk/بستر های نرم افزاری-ابزارها .
  • باز کردن یک اعلان فرمان (ویندوز) یا ترمینال (مک).
  • تغییر دایرکتوری (“cd”)، بنابراین پنجره اشاره در پوشه اندیشه/sdk/بستر های نرم افزاری-ابزارها مانند این:

سی دی/کاربران/jessicathornsby/کتابخانه/اندیشه/sdk/بستر های نرم افزاری-

  • نصب ابزار قاچ Viewer APK در خود دستگاه اندیشه یا AVD تایپ دستور زیر را در خط فرمان و یا پنجره ترمینال و سپس با فشار دادن کلید را وارد کنید:

. / بانک انکشاف آسیایی نصب نی قاچ viewer. apk

بعد، شما نیاز به ایجاد پیکربندی تکه اجرا و تصویب آن خود تکه های منحصر به فرد URI: رفتن

  • به اجرای > ویرایش تنظیمات… از نوار ابزار اندیشه استودیو.
  • کلیک بر روی آیکون کوچک “+” و سپس “آندروید App.”

  • “بریدن به نام” وارد کنید.
  • باز کردن کشویی “ماژول” و سپس انتخاب منوی کرکره ای باز “پرتاب” حدود”
  • ، و”آدرس”را انتخاب کنید
  • بعد، آدرس برش خود را در قالب قطعه-content://package-name/slice-URL وارد کنید. است به عنوان مثال، آدرس من خلال: خلال content://com.jessicathornsby.launchslice/mainActivity

    کلیک کنید خوب.

  • را انتخاب کنید اجرای > تکه از نوار ابزار اندیشه استودیو اجرا و دستگاه خود را انتخاب کنید.

این برنامه خواهد شد در حال حاضر نصب شده بر روی دستگاه شما آندروید. قاچ Viewer قادر به درخواست مجوز برای دسترسی به برنامه خود را برش را; از دست دادن اجازه و برش خود را روی صفحه ظاهر شود.

قطعه “راه اندازی MainActivity” دکمه را کلیک کنید و تکه باید پاسخ درخواست شما MainActivity راه اندازی شده توسط.

دانلود برنامه به پایان رسید از GitHub.

ایجاد تکه پویا

بیایید حرکت بر روی چیزی هیجان انگیز تر و ایجاد برش پویا است که اجازه می دهد تا کاربران برای ارتباط برقرار کردن با نرم افزار مربوط به طور مستقیم از رابط کاربری تکه.

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

برای ساخت این قطعه ایجاد یک پروژه جدید یا بروز رسانی برنامه های موجود شما. اگر شما تصمیم به ایجاد یک پروژه تازه و سپس شما نیاز به راه اندازی زیر تکرار کنید:

  • ایجاد کلاس MySliceProvider ، کنترل کلیک کردن پوشه “src” پروژه شما و جدید انتخاب… > دیگر > [برشدهنده.
  • اضافه کردن زیر وابسته به خود فایل gradle ساخت.: وابسته
 {اجرای fileTree (شما: 'libs' شامل: ['*.jar']) اجرای ' androidx-appcompat: appcompat: 1.0.0-alpha1 ' اجرای ' androidx. constraintlayout: constraintlayout: 1.1.0 'اجرای' androidx. حاشیه نویسی: حاشیه نویسی: 1.0.0-alpha1 'اجرای' androidx. قطعه: تکه هسته: 1.0.0-alpha2 'اجرای' androidx. تکه: سازندگان قطعه: 1.0.0-alpha2 '
   testImplementation ' junit: junit: 4.12' androidTestImplementation ' androidx-test: دونده: 1.1.0-alpha2 'androidTestImplementation' androidx. test. اسپرسو: اسپرسو هسته: 3.1.0-alpha2 '} 

ایجاد طرح نرم افزار

شروع ایجاد رابط کاربر برنامه را.

پروژه خود را activity_main . xml فایل را باز کرده و ایجاد “افزایش” و دکمه “کاهش” به علاوه TextView دو نهایت نمایش برنامه پویا ارزش:

    

ما نیز نیاز به ایجاد منابع رشته است که نشان می دهد ما ارزش پویا:

   dynamicSlice 
    Count:%du00B   

ایجاد بردار را با بردار مرکز دارایی

در خلال، من می خواهم برای نمایش “تا” و “پایین” فلش است که به تغییر ارزش برنامه شنود گذاشته: کنترل کلیک کنید

  • پروژه شما “پژوهش” دایرکتوری و را انتخاب کنید جدید > سرمایه برداری .
  • با کلیک بر روی آیکون “قطعه هنری” کمی.
  • منبع “پیکان به سمت بالا” را انتخاب کنید و سپس روی تأیید کلیک کنید.
  • دارایی های خود را به نام “ic_count_up” و سپس روی بعدی کلیک کنید.
  • پایان را کلیک کنید.

مراحل بالا را تکرار کنید اما این بار نماد پیکان رو به پایین را انتخاب کنید و آن را به نام “ic_count_down.”

هر بار که کاربر افزایش یا کاهش ارزش یک تکه به روز رسانی که زمان اجرا

، ما می داند ما قطعه مورد آن باید مطمئن شوید!

برای یک تکه اطلاع رسانی درباره تغییرات برنامه ما باید تماس بگیرید چهار چوب. getResolver. notifyChange (Uri, پوچ) onBindSlice () روش را آغاز و باعث تکه را بازسازی باشد با مطالب جدید.

 واردات اندیشه. عامل. بسته نرم افزاری;
اندیشه. محتوای. زمینه واردات;
اندیشه. ویدجت. TextView واردات;
اندیشه. خالص. نوع واردات;
اندیشه. مشاهده. مشاهده واردات;

androidx. appcompat. حدود AppCompatActivity وارد کردن;
androidx. مشخصه. NonNull واردات;

کلاس های عمومی MainActivity گسترش AppCompatActivity پیاده OnClickListener {مشاهده اعضای هیات استاتیک عمومی clickCount = 0؛

   mTextView TextView خصوصی;

   @Override حفاظت شده onCreate خالی (بسته نرم افزاری savedInstanceState) {onCreate super. (savedInstanceState);
       setContentView (رضا چیدمان. activity_main);

       mTextView = findViewById (رضا شناسه click_count);

       findViewById (رضا شناسه افزایش). setOnClickListener (این);
       findViewById (رضا شناسه کاهش). setOnClickListener (این);
   } @Override عمومی خالی onClick (مشاهده مشاهده) {هیات شناسه شماره = مشاهده. getId ()؛
       سوئیچ (شناسه) {رضا increase://Increase شناسه ارزش مورد / / updateClickCount (getApplicationContext () clickCount + 1)؛
               شکستن;
           مورد decrease://Decrease رضا شناسه ارزش / / updateClickCount (getApplicationContext (), clickCount-1)؛
               شکستن;
       } mTextView. setText (getClickString (getApplicationContext ()));
   } عمومی استاتیک رشته getClickString (چهار چوب چهار چوب @NonNull) {بازگشت مضمون. getString (R. click_string، clickCount)؛
   } عمومی updateClickCount خالی استاتیک (چهار چوب چهار چوب، اعضای هیات newValue) {اگر (newValue! = clickCount) {clickCount = newValue؛

بازیابی URI است که به این قطعه نقشه برداری / / نوع uri = MySliceProvider. getUri (چهار چوب، "clickCount");

مطلع قطعه مورد محتوای به روز شده / / مضمون. getContentResolver (). notifyChange (uri تهی)؛
       }}} 

ایجاد تکه چند انتخابي

در ما ارائه دهنده قطعه دوم، ما نیاز به تکمیل مراحل معمول (مانند اجرای onCreateSliceProvider و onBindSlice )، به علاوه موارد زیر: [19659018] ایجاد چند SliceActions. ما نیاز به تعریف اقدامات تکه های جداگانه برای زمانی که کاربر را افزایش می دهد ارزش و زمانی که آنها کاهش ارزش.

  • ورودی کاربر را اداره می کند. ما نیز نیاز به تعریف PendingIntent به ثبت حوادث تغییر ارزش برنامه ما. در مرحله بعد ما BroadcastReceiver امکان ایجاد دو خرید این PendingIntents .
  • برخی از موارد پایان عرضه. شما می توانید مقایسه، آیکن ها، نمایش و بریدن اقدامات در انتهای هر ردیف. من می روم به استفاده از “بالا” و “پایین” به عنوان موارد پایان من خلال بردارها.
  • MySlicePr نهایی اینجاستکلاس ovider :

     واردات اندیشه. محتوای. ContentResolver;
    اندیشه. محتوای. زمینه واردات;
    اندیشه. محتوای. قصد وارد کردن;
    واردات اندیشه. حدود PendingIntent;
    اندیشه. خالص. نوع واردات;
    
    androidx. قاچ. سازندگان. ListBuilder واردات;
    androidx. قاچ. تکه وارد;
    androidx. قاچ. سازندگان. SliceAction واردات;
    androidx. قطعه. SliceProvider واردات;
    
    واردات androidx. هسته. گرافیک. drawable. IconCompat;
    
    com. استاتیک jessicathornsby. dynamicslice. MyBroadcastReceiver. ACTION_CHANGE_COUNT واردات;
    com. استاتیک jessicathornsby. dynamicslice. MyBroadcastReceiver. EXTRA_COUNT_VALUE واردات;
    واردات com. استاتیک jessicathornsby. dynamicslice. MainActivity. getClickString;
    واردات com. استاتیک jessicathornsby. dynamicslice. MainActivity. clickCount;
    
    گسترش کلاس های عمومی MySliceProvider SliceProvider {زمینه متن؛
       تعداد اعضای هیات استاتیک خصوصی = 0؛
    
       @Override عمومی onCreateSliceProvider بولی () {متن = getContext ()؛
          بازگشت واقعی؛
       } @Override عمومی برش onBindSlice (نوع sliceUri) {نهایی مسیر رشته = sliceUri. getPath ()؛
           سوئیچ (مسیر) {//Define URI / / مورد "/ clickCount": createClickSlice (sliceUri)؛ بازگشت
           } بازگشت پوچ;
       } createClickSlice تکه های خصوصی (نوع sliceUri) {//Define دو SliceActions / / SliceAction clickUp = SliceAction جدید (getChangeCountIntent (clickCount + 1)، IconCompat-createWithResource (چهار چوب، رضا drawable. ic_count_up). toIcon () "Incre تعداد دفعات مشاهده آسه ");
           SliceAction clickDown = SliceAction جدید (getChangeCountIntent (clickCount-1)، IconCompat. createWithResource (چهار چوب، رضا drawable. ic_count_down). () toIcon "کاهش تعداد");
    
           Listbuilder listBuilder = ListBuilder جدید (متن، sliceUri)؛
           Listbuilder. RowBuilder clickRow = جدید ListBuilder. RowBuilder (listBuilder);
    
           clickRow. setTitle (getClickString (چهار چوب));
    
    اقداماتی که نمایش داده می شوند در پایان سطر اضافه کنید / / clickRow. addEndItem (clickDown);
           clickRow. addEndItem (clickUp);
    
    اضافه کردن سطر به پدر و مادر ListBuilder / / listBuilder. addRow (clickRow);
    
    ساخت تکه / / بازگشت listBuilder. ساخت ()؛
       } //Define PendingIntent است که در نهایت ما گیرنده پخش را آغاز کنید / / خصوصی getChangeCountIntent PendingIntent (دانشنامه هوشمند مقدار) {قصد قصد = جدید قصد (ACTION_CHANGE_COUNT);
           قصد. setClass (چهار چوب، MyBroadcastReceiver کلاس);
           قصد. putExtra (EXTRA_COUNT_VALUE، ارزش);
           بازگشت PendingIntent-getBroadcast (getContext ()، تعداد دفعات مشاهده ++، قصد، / / اگر PendingIntent در حال حاضر وجود دارد، سپس آن را با داده های جدید بروز / / PendingIntent-FLAG_UPDATE_CURRENT);
       } عمومی استاتیک Uri getUri (چهار چوب چهار چوب، مسیر رشته) {جدید () نوع ساز بازگشت. طرح (ContentResolver. SCHEME_CONTENT). قدرت (چهار چوب. getPackageName ()). appendPath (مسیر). ساخت ()؛
       }} 

    عمل تکه مفاهیم

    در نهایت، ما نیاز به ایجاد گیرنده پخش برای بازیابی هر مقدار جدید و اطلاع رسانی ارائه دهنده تکه هر زمان که نیاز به بازسازی تکه: کنترل کلیک کنید

    • پروژه شما “src” پوشه جدید را انتخاب کنید و > دیگر > پخش گیرنده .
    • نام “MyBroadcastReceiver” را وارد کنید و سپس روی پایان کلیک کنید.
    • شما MyBroadcastReceiver فایل را باز کرده و اضافه کردن زیر:
     واردات اندیشه. محتوای. BroadcastReceiver;
    اندیشه. محتوای. زمینه واردات;
    اندیشه. محتوای. قصد وارد کردن;
    
    واردات com. استاتیک jessicathornsby. dynamicslice. MainActivity. clickCount;
    واردات com. استاتیک jessicathornsby. dynamicslice. MainActivity. updateClickCount;
    
    کلاس های عمومی MyBroadcastReceiver گسترش BroadcastReceiver {عمومی استاتیک رشته ACTION_CHANGE_COUNT = "بازرگاني jessicathornsby. slicetesting. ACTION_CHANGE_COUNT";
       عمومی استاتیک رشته EXTRA_COUNT_VALUE = "بازرگاني jessicathornsby. slicetesting. EXTRA_COUNT_VALUE";
    
       @Override خالی onReceive عمومی (چهار چوب چهار چوب، قصد قصد) {رشته اقدام = قصد. getAction ()؛
    
           اگر (ACTION_CHANGE_COUNT. (عمل) برابر && قصد. getExtras ()! = تهی) {//Retrieve مقدار جدید / / اعضای هیات newValue قصد. getExtras () =. getInt (EXTRA_COUNT_VALUE، clickCount)؛
               updateClickCount (چهار چوب، newValue)؛
           }}} 

    را برش خود را پویا به test دو test

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

    • اجرای > ویرایش تنظیمات را از اندیشه نوار ابزار استودیو.
    • کلیک بر روی آیکون کوچک “+” و “اندیشه App.” را انتخاب کنید
    • این پیکربندی نام می دهد.
    • باز کردن کشویی “راه اندازی” و سپس “آدرس” را انتخاب کنید
    • URI برای راه اندازی این قطعه را وارد کنید. من با استفاده از موارد زیر: تکه content://com.jessicathornsby.dynamicslice/clickCount
    • “خوب.” را کلیک کنید
    • را انتخاب کنید اجرای > تکه را از نوار ابزار اندیشه استودیو اجرا.

    برش خود را در حال حاضر در تالار و یا دستگاه های آندروید متصل ظاهر می شود.

    برای قرار دادن این قطعه به test, از دست دادن آن “تا” و “پایین” فلش و تبدیل به درخواست شما MainActivity . از دست دادن هر کدام از دکمه “افزایش” یا “کاهش” برنامه، و باید شروع به شمارش از مقدار ایجاد شده به تکه و نه از صفر. اگر شما به تکه، شما باید پیدا کنید ارزش به طور خودکار به روز است.

    دانلود پروژه کامل از GitHub.

    حالا شما بدانید که چگونه برای پیاده سازی این قابلیت جدید پیچیدن تا

    . برش در پروژه های آندروید خود استفاده خواهید کرد؟ ما در نظرات زیر می دانم!