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

কাস্টম এট্রিবিউট (গুণাগুণ) নির্ধারণ করা

আপনার ইউজার ইন্টারফেসে একটি বিল্ট-ইন View যোগ করতে, আপনি এটাকে একটি XML এলিমেন্টে নির্দিষ্ট করতে পারেন এবং এলিমেন্ট এট্রিবিউট দিয়ে এর উপস্থিতি এবং আচরণ নিয়ন্ত্রণ করুন। সুলিখিত কাস্টম ভিউ XML এর মাধ্যমে যোগ হতে পারে এবং স্টাইল হতে পারে। আপনার কাস্টম ভিউয়ে এই আচরণ সক্রিয় করতে, আপনাকে অবশ্যই যেটা করতে হবে:

  • একটি < declare-styleable> রিসোর্স এলিমেন্টের মধ্যে আপনার ভিউয়ের জন্য কাস্টম এট্রিবিউট নির্ধারণ করুন:

  • আপনার XML লেআউটে এট্রিবিউটের জন্য ভ্যালু নির্দিষ্ট করুন

  • রানটাইমে এট্রিবিউট ভ্যালু রিট্রাইভ (উদ্ধার) করুন

  • আপানর ভিউযে রিট্রাইভ (উদ্ধার) করা ভ্যালু প্রয়োগ করুন

এই অনুশীলনী আলোচনা করে কীভাবে কাস্টম এট্রিবিউট নির্ধারণ করতে হয় এবং এর ভ্যালু নির্দিষ্ট করতে হয়। পরের অধ্যায়ে আলোচনা হবে কীভাবে রান টাইমে ভ্যালু রিট্রাইভ করতে এবং প্রয়োগ করতে হয়।

কাস্টম এট্রিবিউট নির্ধারণ করতে, আপনার প্রজেক্টে < declare-styleable> রিসোর্স যোগ করুন। এই রিসোর্সগুলো একটি res/values/attrs.xml ফাইলে রাখাটা গতানুগতিক হয়। এখানে attrs.xml ফাইলের একটি নমুনা দেয়া হলো:

<resources>
   <declare-styleable name="PieChart">
       <attr name="showText" format="boolean" />
       <attr name="labelPosition" format="enum">
           <enum name="left" value="0"/>
           <enum name="right" value="1"/>
       </attr>
   </declare-styleable>
</resources>

এই কোড দুইটা কাস্টম এট্রিবিউট ডিক্লেয়ার করে, showText এবং labelPosition, যা স্টাইলযুক্ত সত্ত্বার (এনটিটি) সাথে থাকে যার নাম PieChart। স্টাইলযুক্ত সত্ত্বার (এনটিটি) নাম হচ্ছে, প্রথাগতভাবে, ক্লাসের মতো একই নাম, যে ক্লাস কাস্টম ভিউ নির্ধারণ করে। যদি এই প্রথাগত নিয়ম ফলো করার কোন বাধ্যবধকতা নেই, অনেক জনপ্রিয় কোড এডিটর স্টেটমেন্ট কমপ্লিশন (বিবৃতি শেষ করা) প্রদান করতে এই নাম করার প্রথার উপর নির্ভর করে।

যখনই আপনি কাস্টম এট্রিবিউট নির্ধারন করবেন, আপনি বিল্ট-ইন এট্রিবিউটের মতো এগুলোকে লেআউট XML ফাইলে ব্যবহার করতে পারেন। একমাত্র পার্থক্য হচ্ছে যে আপনার কাস্টম এট্রিবিউট একটি ভিন্ন নেমস্পেসের অন্তর্ভূক্ত থাকে। http://schemas.android.com/apk/res/android নেমস্পেসে থাকার পরিবর্তে এগুলো http://schemas.android.com/apk/res/android [আপনার প্যাকেজ নাম]নেমস্পেসে থাকে। উদাহরণস্বরূপ, PieChart এর জন্য নির্ধারিত এট্রিবিউট কীভাবে ব্যবহার করতে হয়, এখানে তা দেয়া হলো:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:custom="http://schemas.android.com/apk/res/com.example.customviews">
 <com.example.customviews.charting.PieChart
     custom:showText="true"
     custom:labelPosition="left" />
</LinearLayout>

দীর্ঘ নেমস্পেস URI রিপিট করা পরিহার করতে , নমুনা একটি xmlns ডিরেক্টিভ (নিদের্শনা) ব্যবহার করে। এই ডিরেকটিভ এই ডিরেকটিভ এলিয়াস (উপনাম) পঁংঃড়স কে নেমস্পেস http://schemas.android.com/apk/res/com.example.customviews এ স্থাপন করে।। আপনি যে কোন এলিয়াস বেছে নিতে পারেন যা আপনি আপনার নেমস্পেসের জন্য চান।

XML ট্যাগের নাম গুলো লক্ষ করুন যা লেআউটে কাস্টম ভিউ যোগ করে। এটা কাস্টম ভিউ ক্লাসের সম্পূর্ণ যোগ্যতসম্পন্ন নেম। আপনার ভিউ ক্লাস যদি ইনার ক্লাস হয় আপনাকে অবশ্যই এটাকে যোগ্য করতে হবে ভিউয়ের আউটার ক্লাসের নামের সাথে । উদাহরণস্বরূপ, PieChart ক্লাসের একটি ইনার ক্লাস আছে যাকে PieView বলে। এই ক্লাস থেকে কাস্টম এট্রিবিউট ব্যবহর করতে, আপনি ট্যাগ com.example.customviews.charting.PieChart$PieView ব্যবহার করতে পারেন।