বাংলায় অ্যান্ড্রয়েড সহায়িকা - Bangla Android Guide

একটি রেজাল্ট ফেরত নিয়ে আসা

যদি আপনি একটিভিটিতে একটি রেজাল্ট ফেরত চান যা আপনারটা আবাহন করে, রেজাল্ট কোড এবং রেজাল্ট Intent সুনির্দিষ্ট করতে শুধুমাত্র setResult()কল করুন। যখন আপনার অপারেশন শেষ হবে এবং ইউজারকে মূল একটিভিটিতে ফিরে যেতে হবে, আপনার একটিভিটি বন্ধ করতে (এবং ধ্বংস করতে) finish()কল করুন। উদাহরণস্বরূপ: // Create intent to deliver some kind of result data Intent result = new Intent("com.example.RESULT_ACTION", Uri.parse("content://result_uri"); setResult(Activity.RESULT_OK, result); finish();

আপনাকে অবশ্যই সবসময় রেজাল্ট দিয়ে রেজাল্ট কোড সুনির্দিষ্ট করতে হবে। সাধারণত, হয় এটা RESULT OK বা RESULT CANCELED। এরপর আপনি প্রয়োজন অনুসারে একটা Intent দিয়ে অতিরিক্ত ডাটা সরবরাহ করতে পারেন।

নোট: রেজাল্টটি RESULT CANCELED এ বাই ডিফল্ট সেট হয়েছে. তাই, একশন শেষ করার পূর্বে বা আপনি রেজাল্ট সেট করার পূর্বে যদি ইউজার ব্যাক বাটন চাপে, মূল একটিভিটি “ক্যানসেল” রেজাল্ট রিসিভ করে।

আপনার যদি কেবল একটি ইনটিজার ফেরত আনার দরকর হয় যা কিছু রেজাল্ট অপশনের একটি নির্দেশ করে, আপনি ০ এর চেয়ে বেশী যে কোন ভ্যালুতে রেজাল্ট কোড সেট করতে পারেন। যদি আপনি একটি ইনটিজার ডেলিভারি দিতে রেজাল্ট কোড ব্যবহার করেন এবং আপনার Intent অন্তর্ভূক্ত করার কোন দরকার না থাকে, আপনি setResult()কল করতে পারেন এবং শুধু একটি রেজাল্ট কোড পাস করতে পারেন। উদাহরণস্বরূপ:

setResult(RESULT_COLOR_RED);
finish();

এক্ষেত্রে, এখানে শুধু অল্প কিছু সম্ভাব্য রেজাল্ট হতে পারে, ফলে রেজাল্ট কোডটি হচ্ছে একটি কাছাকাছি সুনির্দিষ্ট ইনটিজার (০ এর চেয়ে বেশী)। এটা ভালোবাবে কাজ করবে যখন আপনার নিজস্ব অ্যাপে একটি একটিভিটিতে রেজাল্ট ফেরত আনছেন, কারন একটিভিটিটা যেটা রেজাল্ট রিসিভ করছে রেজাল্ট কোডের ভ্যালু নির্ধারন করতে পাবলিক কনসট্যান্টকে রেফারেন্স করতে পারে।

নোট: আপনার একটিভিটি কি startActivity()নাকি startActivityForResult()দিয়ে চলছে তা চেক প্রযোজন নেই। শুধু setResult()কল করুন যদি ইনটেন্ট যা আপনার একটিভিটি শুরু করেছে একটা রেজাল্ট আশা করতে পারে। যদি প্রথমিকভাবে শুরু করা একটিভিটি startActivityForResult()কল করে থাকে, তখন সিস্টেমটি এটা ডেলিভারি দেয়, রেজাল্ট যেটা আপনি setResult()এ সাপ্লাই করেছেন; অন্যথায় রেজাল্ট উপেক্ষিত হয়।