কম্পিউটার

অ্যান্ড্রয়েডে একটি কাস্টম লিস্টভিউ কীভাবে তৈরি করবেন?


লিস্টভিউ উদাহরণে যাওয়ার আগে, আমাদের লিস্টভিউ সম্পর্কে জানা উচিত, লিস্টভিউ হল অ্যারেলিস্ট, তালিকা বা যেকোনো ডাটাবেস থেকে নেওয়া আইটেমগুলির একটি সংগ্রহ। লিস্টভিউ-এর বেশিরভাগ ব্যবহার হল উল্লম্ব বিন্যাসে আইটেমগুলির একটি সংগ্রহ, আমরা উপরে/নীচে স্ক্রোল করতে পারি এবং যেকোনো আইটেমে ক্লিক করতে পারি।

কাস্টম লিস্টভিউ কি?

কাস্টম লিস্টভিউ কাস্টম অ্যাডাপ্টারের উপর ভিত্তি করে কাজ করে। এই কাস্টম অ্যাডাপ্টারে আমরা কাস্টম অবজেক্ট পাস করতে পারি। আমরা নীচের দেখানো হিসাবে লিস্টভিউতে বিষয় ডেটা পাস করছি -

ধাপ 1 − অ্যান্ড্রয়েড স্টুডিওতে একটি নতুন প্রকল্প তৈরি করুন, ফাইল ⇒ নতুন প্রকল্পে যান এবং একটি নতুন প্রকল্প তৈরি করতে সমস্ত প্রয়োজনীয় বিবরণ পূরণ করুন৷

ধাপ 2 − res/layout/activity_main.xml-এ নিম্নলিখিত কোড যোগ করুন।

<?xml version = "1.0" encoding = "utf-8"?>
<android.support.constraint.ConstraintLayout
xmlns:android = "https://schemas.android.com/apk/res/android" xmlns:tools = "https://schemas.android.com/tools" android:layout_width = "match_parent"
   android:layout_height = "match_parent">
<LinearLayout
   android:layout_width = "match_parent"
   android:layout_height = "match_parent"
   android:orientation = "vertical">
   <ListView
      android:id = "@+id/list"
      android:layout_width = "wrap_content"
      android:layout_height = "match_parent"
      android:divider = "#000"
      android:dividerHeight = "1dp"
      android:footerDividersEnabled = "false"
      android:headerDividersEnabled = "false"/>
</LinearLayout>
</android.support.constraint.ConstraintLayout>

উপরের activity_main.xml-এ, আমরা একটি লিস্টভিউ ঘোষণা করেছি এবং নিচের মত বিভাজক যোগ করেছি।

<ListView
   android:id = "@+id/list"
   android:layout_width = "wrap_content"
   android:layout_height = "match_parent"
   android:divider = "#000"
   android:dividerHeight = "1dp"
   android:footerDividersEnabled = "false"
   android:headerDividersEnabled = "false"
/>

ধাপ 3 − src/MainActivity.java

-এ নিম্নলিখিত কোড যোগ করুন
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.ListView;
import java.util.ArrayList;
public class MainActivity extends AppCompatActivity {
   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
      final ListView list = findViewById(R.id.list);
      ArrayList<SubjectData> arrayList = new ArrayList<SubjectData>();
      arrayList.add(new SubjectData("JAVA", "https://www.tutorialspoint.com/java/",             "https://www.tutorialspoint.com/java/images/java-mini-logo.jpg"));
      arrayList.add(new SubjectData("Python", "https://www.tutorialspoint.com/python/", "https://www.tutorialspoint.com/python/images/python-mini.jpg"));
      arrayList.add(new SubjectData("Javascript", "https://www.tutorialspoint.com/javascript/", "https://www.tutorialspoint.com/javascript/images/javascript-mini-logo.jpg"));
      arrayList.add(new SubjectData("Cprogramming", "https://www.tutorialspoint.com/cprogramming/", "https://www.tutorialspoint.com/cprogramming/images/c-mini-logo.jpg"));
      arrayList.add(new SubjectData("Cplusplus", "https://www.tutorialspoint.com/cplusplus/", "https://www.tutorialspoint.com/cplusplus/images/cpp-mini-logo.jpg"));
      arrayList.add(new SubjectData("Android", "https://www.tutorialspoint.com/android/", "https://www.tutorialspoint.com/android/images/android-mini-logo.jpg"));
      CustomAdapter customAdapter = new CustomAdapter(this, arrayList);
      list.setAdapter(customAdapter);
   }
}

মেইন অ্যাক্টিভিটিতে, আমরা কাস্টমঅ্যাডাপ্টার ঘোষণা করেছি এবং নিচের মত সাবজেক্টডেটা পাস করেছি -

CustomAdapter customAdapter = new CustomAdapter(this, arrayList);
list.setAdapter(customAdapter);

পদক্ষেপ 4৷ − একটি CustomAdapter ক্লাস তৈরি করুন src/ CustomAdapter.java এ নিম্নলিখিত কোড যোগ করুন

import android.content.Context;
import android.database.DataSetObserver;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.ListAdapter;
import android.widget.TextView;
import com.squareup.picasso.Picasso;
import java.util.ArrayList;
class CustomAdapter implements ListAdapter {
   ArrayList<SubjectData> arrayList;
   Context context;
   public CustomAdapter(Context context, ArrayList<SubjectData> arrayList) {
      this.arrayList=arrayList;
      this.context=context;
   }
   @Override
   public boolean areAllItemsEnabled() {
      return false;
   }
   @Override
   public boolean isEnabled(int position) {
      return true;
   }
   @Override
   public void registerDataSetObserver(DataSetObserver observer) {
   }
   @Override
   public void unregisterDataSetObserver(DataSetObserver observer) {
   }
   @Override
   public int getCount() {
      return arrayList.size();
   }
   @Override
   public Object getItem(int position) {
      return position;
   }
   @Override
   public long getItemId(int position) {
      return position;
   }
   @Override
   public boolean hasStableIds() {
      return false;
   }
   @Override
   public View getView(int position, View convertView, ViewGroup parent) {
      SubjectData subjectData=arrayList.get(position);
      if(convertView==null) {
         LayoutInflater layoutInflater = LayoutInflater.from(context);
         convertView=layoutInflater.inflate(R.layout.list_row, null);
         convertView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
            }
         });
         TextView tittle=convertView.findViewById(R.id.title);
         ImageView imag=convertView.findViewById(R.id.list_image);
         tittle.setText(subjectData.SubjectName);
         Picasso.with(context)
         .load(subjectData.Image)
         .into(imag);
      }
      return convertView;
   }
   @Override
   public int getItemViewType(int position) {
      return position;
   }
   @Override
   public int getViewTypeCount() {
      return arrayList.size();
   }
   @Override
   public boolean isEmpty() {
      return false;
   }
}

ধাপ 5 − একটি SubjectData ক্লাস তৈরি করুন, নিম্নলিখিত কোডটি src/ SubjectData.java এ যোগ করুন

class SubjectData {
   String SubjectName;
   String Link;
   String Image;
   public SubjectData(String subjectName, String link, String image) {
      this.SubjectName = subjectName;
      this.Link = link;
      this.Image = image;
   }
}

ধাপ 6 - CustomAdapter ক্লাসে আমরা ইন্টারনেট সোর্স ইমেজ দেখিয়েছি। ইন্টারনেট সোর্স ইমেজ দেখাতে. আমরা নীচে দেখানো হিসাবে পিকাসো লাইব্রেরি যোগ করেছি।

Picasso.with(context)
.load(subjectData.Image)
.into(imag);

পদক্ষেপ 7 − পিকাসো লাইব্রেরি বাস্তবায়নের জন্য, আমাদের পিকাসো লাইব্রেরি গ্রেডে যুক্ত করতে হবে যেমন নীচে দেখানো হয়েছে

apply plugin: 'com.android.application'
android {
   compileSdkVersion 28
   defaultConfig {
      applicationId "com.example.andy.myapplication"
      minSdkVersion 15
      targetSdkVersion 28
      versionCode 1
      versionName "1.0"
      testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
   }  
   buildTypes {
      release {
         minifyEnabled false
         proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
      }
   }
}
dependencies {
   implementation fileTree(dir: 'libs', include: ['*.jar'])
   implementation 'com.android.support:appcompat-v7:28.0.0'
   implementation 'com.android.support.constraint:constraint-layout:1.1.3'
   testImplementation 'junit:junit:4.12'
   implementation 'com.squareup.picasso:picasso:2.5.1'
   androidTestImplementation 'com.android.support.test:runner:1.0.2'
   androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}

ধাপ 8 − ইন্টারনেট তথ্য অ্যাক্সেস করার জন্য, আমাদেরকে নীচে দেখানো ফাইলের মতো ম্যানিফেস্ট করার জন্য ইন্টারনেটের অনুমতি দিতে হবে।

<?xml version = "1.0" encoding = "utf-8"?>
<manifest xmlns:android = "https://schemas.android.com/apk/res/android"
   package = "com.example.andy.myapplication">
<uses-permission android:name = "android.permission.INTERNET"/>
   <application
      android:allowBackup = "true"
      android:icon = "@mipmap/ic_launcher"
      android:label = "@string/app_name"
      android:roundIcon = "@mipmap/ic_launcher_round"
      android:supportsRtl = "true"
      android:theme = "@style/AppTheme">
      <activity android:name = ".MainActivity">
         <intent-filter>
            <action android:name = "android.intent.action.MAIN" />
            <category android:name = "android.intent.category.LAUNCHER" />
         </intent-filter>
      </activity>
   </application>
</manifest>

আপনার অ্যাপ্লিকেশন চালানোর চেষ্টা করা যাক. আমি ধরে নিচ্ছি আপনি আপনার কম্পিউটারের সাথে আপনার আসল অ্যান্ড্রয়েড মোবাইল ডিভাইসটি সংযুক্ত করেছেন৷ অ্যান্ড্রয়েড স্টুডিও থেকে অ্যাপটি চালানোর জন্য, আপনার প্রোজেক্টের অ্যাক্টিভিটি ফাইলগুলির একটি খুলুন এবং রান এ ক্লিক করুন টুলবার থেকে অ্যান্ড্রয়েডে একটি কাস্টম লিস্টভিউ কীভাবে তৈরি করবেন? আইকন। একটি বিকল্প হিসাবে আপনার মোবাইল ডিভাইসটি নির্বাচন করুন এবং তারপরে আপনার মোবাইল ডিভাইসটি পরীক্ষা করুন যা আপনার ডিফল্ট স্ক্রীন প্রদর্শন করবে৷

অ্যান্ড্রয়েডে একটি কাস্টম লিস্টভিউ কীভাবে তৈরি করবেন?


  1. অ্যান্ড্রয়েডে আমার লিস্টভিউয়ের জন্য কাস্টম অ্যাডাপ্টার কীভাবে যুক্ত করবেন?

  2. একটি অ্যান্ড্রয়েড অ্যাপে কীভাবে একটি কাস্টম সতর্কতা ডায়ালগ তৈরি করবেন?

  3. অ্যান্ড্রয়েডে কাস্টম রেটিং বার কীভাবে তৈরি করবেন?

  4. একটি অ্যান্ড্রয়েড অ্যাপে একটি মাল্টিলেভেল লিস্টভিউ কীভাবে তৈরি করবেন?