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

টেক্সট ফিল্ড এ্যাড (সংযোজন) করুন

ইউজার কর্তৃক এডিটযোগ্য টেক্সট ফিল্ড তৈরী করতে, এর মধ্যে একটি উপাদান যোগ করুন।

প্রতিটা View অবজেক্ট এর মতোই, EditText অবজেক্ট এর প্রপারটিসকে সুনির্দিষ্ট করতে নির্দিষ্ট XML এট্রিবিউট নির্ধারন করা উচিত। কীভাবে উপাদানের ভিতরে এটাকে আপনার নিশ্চিত করা উচিত তা এখানে আছে:

<EditText android:id="@+id/edit_message"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:hint="@string/edit_message" />
রিসোর্স অবজেক্টস সম্পর্কে কিছু কথা
সহজ ভাষায় রিসোর্স অবজেক্ট হচ্ছে একটি স্বতন্ত্র ইন্টেজার (integer) নাম যা একটা অ্যাপ রিসোর্স এর সঙ্গে যুক্ত, যেমন বিটম্যাপ, লেআউট ফাইল, বা স্ট্রিং। প্রতিটা রিসোর্সে আপনার প্রজেক্টের gen/r.java ফাইলের মধ্যে অনুরূপ রিসোর্স কে নির্ধারন করে দেয়। আপনার রিসোর্স এ উল্লেখ করতে জ ক্লাসে অবজেক্ট নাম ব্যবহার করতে পারেন, যেমন আপনার যখন android:hint এট্রিবিউট এর জন্য স্ট্রিং ভ্যালু সুনির্দিষ্ট করার প্রয়োজন হবে। আপনি একটি নিয়মবহির্ভূত রিসোর্স আইডি তৈরী করতে android.id এট্রিবিউট ব্যবহার করে একটি ভিউ এর সাথে সংযুক্ত করতে পারেন যা আপনাকে অন্য কোড থেকে ওই ভিউ কে রেফার করতে অনুমোদন করে।

আপনি যখন আপনার অ্যাপ কমপাইল করেন তখন প্রতিবারই এসডিকে টুল R.java তৈরী করে। আপনাকে কখনই নিজ হাতে এই ফাইলকে পরিবর্তন করাতে হবে না।

আরও তথ্যের জন্য Providing Resources গাইড পড়–ন (লিংক: http://developer.android.com/guide/topics/resources/providing-resources.html)

এই বিশেষ গুন সমুহ সম্পর্কে:

android.id

এটা ভিউ এর জন্য একটি ইউনিক আইডেন্টিফায়ার সরবরাহ করে, যা আপনি আপনার অ্যাপ কোড থেকে অবজেক্টকে রেফারেন্স হিসাবে ব্যবহার করতে পারেন, যেমন অবজেক্ট পড়তে বা সংশোধন করতে (আপনি এটা পরবর্তী অনুশীলনীতে পারেন)

যখন আপনি XML থেকে যে কোন রিসোর্স অবজেক্ট উল্লেখ করবেন তখন (@) চিহ্নটি দরকার হবে। এটা রিসোর্স টাইপ(এই ক্ষেত্রে id), স্ল্যাশ এবং তারপর রিসোর্স নাম (edit_message) কে অনুসরন করে।

(+) চিহ্ন টি রিসোর্স টাইপ এর পূর্বে থাকা প্রয়োজন শুধুমাত্র যখন আপনি প্রথম বারের মতো একটি রিসোর্স আইডি নির্ধারন করবেন । আপনি যখন অ্যাপ কম্পাইল করবেন, এসডিকে টুলস আপনার প্রজেক্টের gen/R.java ফাইল এর মধ্যে নতুন রিসোর্স আইডি তৈরী করতে আইডি নাম ব্যবহার করে যা EditText উপাদান কে রেফার করে। একবার যদি এভাবে রিসোর্স আইডি কে ঘোষণা করা হয়, তাহলে আইডির অন্য রেফারেন্স এর জন্য প্লাস সাইন ব্যবহার করতে হবে না। প্লাস সাইন শুধুমাত্র তখনই দরকার শুধুমাত্র যখন একটি নতুন রিসোর্স আইডি কে নির্দিষ্টকরন করা হয় এবং কংক্রিট রিসোর্স যেমন স্ট্রিং বা লেআউট এর জন্য এর দরকার নেই।

android:layout width এবং android:layout height

উচ্চতা ও প্রস্থের জন্য সুনির্দিষ্ট সাইজ ব্যবহার করার পরিবর্তে, "wrap_content" মান সুনির্দিষ্ট করে ভিউ এর কনটেন্ট এর সাথে খাপ খেতে যতটুকু বড় হওয়া প্রয়োজন ভিউ এর ঠিক ততটুকু বড় হওয়া উচিত। আপনি যদি এর পরিবর্তে "match_parent", ব্যবহার করে থাকেন, তখন EditText উপাদান স্ক্রিনটা পূর্ন করবে, কারন এটা প্যারেন্ট LinearLayout এর সাইজের সাথে ম্যাচ করতে পারে। আরও জানতে দেখুন Layouts গাইড (http://developer.android.com/guide/topics/ui/declaring-layout.html)।

androiid:hint

প্রদর্শন করার জন্য এটা একটি ডিফল্ট স্ট্রিং যখন টেক্সট ফিল্ড খালি থাকে। ভ্যালু হিসাবে হার্ড কোডেড স্ট্রিং এর ব্যবহারের পরিবর্তে, "@string/edit_message" ভ্যালু একটি আলাদা ফাইলে নির্ধারিত স্ট্রিং রিসোর্স রেফার করে। কারন এটা একটা কংক্রিট রিসোর্স রেফার করে (শুধুমাত্র আইডেন্টিফায়ার নয়), এর জন্য কোন প্লাস দরকার হবে না। যাইহোক, যেহেতু আপনি এখন পর্যন্ত স্ট্রিং রিসোর্স কে নির্ধারন করতে পারেন নি, আপনি প্রথমেই একটা কম্পাইল এরর দেখতে পারবেন।

নোট: এই স্ট্রিং রিসোর্স এর এলিমেন্ট আইডি এর মতোই একই নাম: edit message। যাহোক রিসোর্স রেফারেন্স সবসময়ই রিসোর্স টাইপ দ্বারা সুবিধা প্রাপ্ত হয়(যেমন id অথবা string), সুতরাং একই নাম কোন সংঘাত তৈরী করে না।