ক্রিয়াকলাপ এবং ফ্র্যাগমেন্টঅ্যাক্টিভিটির মধ্যে পার্থক্য


228

আমি খণ্ডগুলিতে কাজ করছিলাম এবং দুটি জিনিস পেয়েছিলাম Activityএবং FragmentActivityযা বেশ কয়েকবার ব্যবহৃত হয়। আমি জানতে চাই যে এই দুই এর মধ্যে কোন পার্থক্য নেই, কারণ যখন আমি পরিবর্তন চাই Activityসঙ্গে FragmentActivity, এটা অ্যাপে কোনো প্রভাব ছিল না।

উত্তর:


316

FragmentActivityহ'ল এর একটি সাবক্লাস Activityযা অ্যান্ড্রয়েড সমর্থন প্যাকেজটির জন্য নির্মিত হয়েছিল ।

FragmentActivityবর্গ একটি দম্পতি নতুন পদ্ধতি পুরোনো Android এর সংস্করণ সাথে সামঞ্জস্যের নিশ্চিত করার যোগ করেন, কিন্তু অন্য যে, সত্যিই অনেক দুই মধ্যে একটি পার্থক্য নয়। শুধু নিশ্চিত করুন যে আপনি করা সমস্ত কল পরিবর্তন getLoaderManager()এবং getFragmentManager()করতে getSupportLoaderManager()এবং getSupportFragmentManager()যথাক্রমে।


4
আরে আমি কলমগুলি সাপোর্টপোর্ট লোডারম্যানেজার () এবং সাফল্টফ্রেগমেন্টম্যানেজার () পাওয়ার জন্য পরিবর্তন করি নি .. তবে এটি ঠিকঠাক কাজ করছে।
রুকি

31
এটাই এটিকে এত বিপজ্জনক করে তুলেছে: পি। এবং পদ্ধতিগুলি FragmentActivityউত্তরাধিকার সূত্রে পায় getLoaderManagerএবং ফলস্বরূপ সংকলক অভিযোগ করবে না। সম্ভাবনা হ'ল আপনিও ভুল এবং ক্লাস আমদানি করছেন। নিশ্চিত করুন যে আপনি এই ক্লাসগুলি অ্যান্ড্রয়েড এসডিকে ( ) নয় , সমর্থন প্যাকেজ ( ) থেকে আমদানি করছেনgetFragmentManagerActivityLoaderManagerFragmentManagerandroid.support.v4.appandroid.app
অ্যালেক্স লকউড

1
আমরা কি বলতে পারি যে অ্যান্ড্রয়েড ২.x সংস্করণের জন্য যদি আমরা টুকরোগুলি ব্যবহার করতে চাই তবে আমাদের ক্রিয়াকলাপটি ব্যবহার করা দরকার এমন টুকরোগুলি সমর্থন করে এমন সংস্করণে ফ্রেগমেন্টএকটিভিটি নাদ ব্যবহার করতে হবে।
রুকি

55
আমি মনে করি আপনি যা বলছেন তা সঠিক। তবে কেবল 100% পরিষ্কার হতে হবে ... Activityআপনি যদি ব্যবহার করছেন তবে ব্যবহার করুন android.app.Fragment; ব্যবহার FragmentActivityকরে আপনি ব্যবহার করছেন android.support.v4.app.Fragment। কখনো সংযুক্ত android.support.v4.app.Fragmentএকটি থেকে android.app.Activity, এই কারণ হবে একটি ব্যতিক্রম নিক্ষেপ করা হবে।
অ্যালেক্স লকউড

13
প্রথমে এই টিউটোরিয়ালটি ব্যবহার করুন ( Fragmentsকোনও অ্যাপ্লিকেশনটিতে কীভাবে ব্যবহার করবেন )। তারপরে, এই টিউটোরিয়ালটি চালিয়ে যান (কীভাবে Fragmentসমর্থন প্যাকেজ থেকে এইগুলি ব্যবহার করবেন )। ডকুমেন্টেশন ডেভেলপারদের সাইটে পাশাপাশি মূল্য পড়া।
অ্যালেক্স লকউড

4

FragmentActivityসমর্থন লাইব্রেরির অংশ , যখন Activityফ্রেমওয়ার্কের ডিফল্ট শ্রেণি। তারা কার্যত সমতুল্য।

আপনার সর্বদা FragmentActivityএবং android.support.v4.app.Fragmentপ্ল্যাটফর্মের ডিফল্ট Activityএবং android.app.Fragmentক্লাসগুলির পরিবর্তে ব্যবহার করা উচিত । প্ল্যাটফর্ম ডিফল্ট ব্যবহারের অর্থ হ'ল আপনি যে ডিভাইসটি চালিয়ে যাচ্ছেন তাতে টুকরোগুলি প্রয়োগের যে কোনও বাস্তবায়নই নির্ভর করছে is এগুলি প্রায়শই একাধিক বছরের পুরনো থাকে এবং এর মধ্যে সহায়তা লাইব্রেরিতে ঠিক করা হয়েছে এমন বাগ রয়েছে।


1
দ্রষ্টব্য: minSdkVersionসমর্থন লাইব্রেরির সংস্করণ 26.xx থেকে 14
ইউজেন পেচানেক
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.