আজকের পর্বে আমরা ডাটাবেস SQLite এবং প্রোজেক্ট এর সেটআপ-শেষপর্ব সম্পর্কে আলোচনা করব। এই পর্বে আমরা ডাটাবেসে ইনপুট দেয়াডাটাগুলো অন্য আরেকটি activity তে প্রদর্শন করব।প্রথমেই আমাদের দুইটা xml লেআউট লাগবে যেখানে একটিতে ListView আইটেম শো করব, অন্য একটি xml লেআউট একি কি আইটেম শো করব তা সেট করে দিব।activity_contact_list নামে একটি লেআউট নেয়, এই লেআউট এ LinearLayout এ ListView ড্রাগ করে সেট করেদেই। অন্য আরেকটি লেআউট listshow নামে নেয়। এই লেআউট এর LinearLayout এ দুইটা TextView নেয়। একটি TextView নাম এবং অন্য আরেকটি TextView ইমেইল শো করার জন্য ব্যবহার করা হবে।
package com.code.androiddatabase; import java.util.ArrayList; import android.app.Activity; import android.content.Context; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.ListView; import android.widget.TextView; public class ContactList extends Activity { ListView listView; DatabaseInsert dbinsert; String name, educat, email, mobile; ArrayList<Contacts> contacts; CustomList clist; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_contact_list); dbinsert = new DatabaseInsert(this); dbinsert.open(); contacts = dbinsert.getContacts(); dbinsert.close(); listView = (ListView) findViewById(R.id.listView); clist = new CustomList(ContactList.this, R.layout.listshow, R.id.tvName, contacts); listView.setAdapter(clist); } /** * @author Riddhi * */ class CustomList extends ArrayAdapter<Contacts> { ArrayList<Contacts> lists; Context context; public CustomList(Context context, int resource, int textViewResourceId, ArrayList<Contacts> objects) { super(context, resource, textViewResourceId, objects); this.lists = objects; this.context = context; } @Override public View getView(int position, View convertView, ViewGroup parent) { View v = convertView; if (convertView == null) { LayoutInflater inflater = (LayoutInflater) context .getSystemService(LAYOUT_INFLATER_SERVICE); v = inflater.inflate(R.layout.listshow, parent, false); } TextView tvName = (TextView) v.findViewById(R.id.tvName); TextView tvEmail = (TextView) v.findViewById(R.id.tvEmail); Contacts c = (Contacts) this.lists.get(position); tvName.setText(c.getName()); tvEmail.setText(c.getEmail()); return v; } } }
এখন আমাদের ইনপুট দেয়া নাম ও ইমেইল activity তে প্রদর্শন করার জন্য আরেকটি জাভা ক্লাস ফাইল লাগবে। তাহলে নতুন একটি জাভা ক্লাস ফাইল নেয় ContactList নামে। লিস্ট আকারে আইটেমগুলো প্রদর্শন করার জন্য আমদের ListView এর জন্য listviewvariable ডিক্লিয়ারকরে দিব। পাশাপাশি যেই ক্লাস দিয়ে আমরা ডাটাবেস ইনসার্ট করেছি সেই ক্লাস দিয়ে আরেকটি variable dbinsert ডিক্লিয়ার করে দেয়। এখন আমরা যেই আইটেমগুলো আমাদের activity তে প্রদর্শন করতে চাই সেই জন্য আরেকটি ক্লাস নেই এবং সেই ক্লাসের দেই CustomList। CustomList এর জন্য clist variable ডিক্লিয়ার করে দেয়।তারপর আমদের contact আইটেমগুলো list আকারে প্রদর্শন করার জন্য ArrayList এর জন্য ডিক্লিয়ার করে দেয় contactsvariable টি যা Contacts ক্লাস ফাইল থেকে contact এর আইটেম গুলো নিয়ে আসবে। এখন dbinsert variable দিয়ে আমরা নতুন একটি instance তৈরি করি onCreate মেথডের ভিতরে। তারপর অন্যান্য প্রয়োজনীয় মেথড যেমন open(), getContacts() এবং close() এগুলোও ডিক্লিয়ার করে দেয়।
তারপর আমরা সেট করব আমদের CustomLIst ক্লাসকে।CustomList ক্লাসকে extends করি ArrayAdapter দ্বারা। এবং ArrayList<Contacts> এর জন্য lists ডিক্লিয়ার করে দেয়। Context এর জন্য context variable টিও ডিক্লিয়ার করে দেয়। তারপর CustomList এর জন্য একটি contructor তৈরি করি যেখানে lists ও context এর value গুলো সেন্ড হবে। এরপর আমাদেরকে getView মেথডটিও সেট করে দিতে হবে। এই মেথডে আমরা Name, Email এর context গুলো পাবার জন্য প্রয়োজনীয় value গুলো সেট করে দিব। পাশাপাশি এখানে ব্যবহার করা হয়েছে convertView,LayoutInflater এর মত ক্লাস।এই বিষয়ে প্রশ্ন থাকলে আশা করি টিউমেন্ট করবেন।তারপর getView মেথডে রিটার্ন করা হয়েছে View তে ডিক্লিয়ার করা v কে।
এই ছিল আজকের ডাটাবেস SQLite এবং প্রোজেক্ট এর সেটআপ-শেষপর্ব
আজকের প্রোজেক্ট এর সোর্স কোড ডাউনলোড করন এখান থেকে।
এন্ড্রয়েড ডেভেলপমেন্ট এর সর্বশেষ পর্ব সম্পর্কে নোটিফিকেশান পেতে লাইক করুন ফেসবুকের এই পেইজে এ।
আমি নাঈম হায়দার ঋদ্ধি। বিশ্বের সর্ববৃহৎ বিজ্ঞান ও প্রযুক্তির সৌশল নেটওয়ার্ক - টেকটিউনস এ আমি 12 বছর 1 মাস যাবৎ যুক্ত আছি। টেকটিউনস আমি এ পর্যন্ত 76 টি টিউন ও 44 টি টিউমেন্ট করেছি। টেকটিউনসে আমার 6 ফলোয়ার আছে এবং আমি টেকটিউনসে 0 টিউনারকে ফলো করি।
Computer ও Programming পছন্দ, আমার youtube channel https://www.youtube.com/channel/UCYKbAf2kXLgKav30hd3zDPQ . আমার ফেসবুক প্রোফাইল https://www.facebook.com/nayeem.riddhi
ভাল হয়েছে সুন্দর পোষ্ট করার জন্য ধন্যবাদ।