android - একট - কিভাবে ইউটিউবে ভিডিও আপলোড করবেন



কিভাবে আমি অ্যানড্রয়েড থেকে অন্য একটি ক্রিয়াকলাপ থেকে একটি বস্তু পাস করব? (4)

আপনার বস্তু পার্সেসেবল ইন্টারফেস বাস্তবায়ন করতে পারেন। তারপরে আপনি Bundle.putParcelable() পদ্ধতিটি ব্যবহার করতে পারেন এবং আপনার বস্তুর উদ্দেশ্যগুলির মধ্যে ক্রিয়াকলাপগুলির মধ্যে পাস করতে পারেন।

Photostream অ্যাপ্লিকেশন এই পদ্ধতির ব্যবহার করে এবং একটি রেফারেন্স হিসাবে ব্যবহার করা যেতে পারে।

https://src-bin.com

আমি আমার অ্যাপের মধ্যে একাধিক ক্রিয়াকলাপে একটি বস্তু ব্যবহার করতে সক্ষম হতে হবে, এবং এটি একই বস্তু হতে হবে। এই কাজ করতে সবচেয়ে ভালো উপায় কি?

আমি "পাবলিক স্ট্যাটিক" বস্তুটি তৈরি করার চেষ্টা করেছি যাতে এটি অন্য ক্রিয়াকলাপ দ্বারা অ্যাক্সেস করা যেতে পারে, কিন্তু কিছু কারণে এটি কেবল এটি কাটছে না। এই কাজ করার অন্য উপায় আছে?


Answer #1

আপনি Application একটি subclass তৈরি করতে পারেন এবং আপনার শেয়ারকৃত বস্তু সেখানে সংরক্ষণ করতে পারেন। অ্যাপ্লিকেশন অবজেক্টটি আপনার অ্যাপ্লিকেশনের জীবদ্দশায় থাকা উচিত যতক্ষণ সক্রিয় কিছু উপাদান রয়েছে।

আপনার ক্রিয়াকলাপ থেকে, আপনি getApplication() মাধ্যমে অ্যাপ্লিকেশন অবজেক্ট অ্যাক্সেস করতে পারেন।


Answer #2

এটা আপনার অ্যাক্সেস প্রয়োজন তথ্য ধরনের উপর নির্ভর করে। আপনার যদি কোনও ধরনের ডেটা পুল থাকে যা Activity সর্বদা চলতে থাকে তবে এরিকের উত্তরটি যাওয়ার উপায়। যদি আপনি কেবল একটি ক্রিয়াকলাপ থেকে অন্য কিছু বস্তুগুলি পাস করতে চান তবে আপনি সেগুলিকে Serializable বাস্তবায়ন করতে এবং নতুন Activity শুরু করার উদ্দেশ্যে Intent অতিরিক্ত পাশে পাস করতে পারেন।


Answer #3

যখন আপনি কোন উদ্দেশ্য তৈরি করেন, তখন আপনি দুটি ক্রিয়াকলাপের মধ্যে বস্তুগুলি পাস করার জন্য নিম্নলিখিত দুটি পদ্ধতির সুবিধা নিতে পারেন।

putParcelable

putSerializable

আপনি আপনার ক্লাসের Parcelable বা Serializable প্রয়োগ করতে পারেন। তারপর আপনি কার্যক্রম জুড়ে আপনার নিজস্ব ক্লাস কাছাকাছি পাস করতে পারেন। আমি এই খুব দরকারী পাওয়া গেছে।

এখানে আমি ব্যবহার করছি কোড একটি ছোট স্নিপেট

CustomListing currentListing = new CustomListing();
Intent i = new Intent();
Bundle b = new Bundle();
b.putParcelable(Constants.CUSTOM_LISTING, currentListing);
i.putExtras(b);
i.setClass(this, SearchDetailsActivity.class);
startActivity(i);

এবং নতুন শুরু কার্যকলাপ কোড এই মত কিছু হতে হবে ...

Bundle b = this.getIntent().getExtras();
if (b != null)
    mCurrentListing = b.getParcelable(Constants.CUSTOM_LISTING);





android-activity