কম্পিউটার

অ্যান্ড্রয়েডে লিস্টভিউয়ের ভিতরে ফোকাসযোগ্য সম্পাদনা পাঠ কীভাবে তৈরি করবেন?


এই উদাহরণটি দেখায় কিভাবে আমি অ্যান্ড্রয়েডে লিস্টভিউ-এর মধ্যে একটি ফোকাসযোগ্য সম্পাদনা পাঠ তৈরি করব।

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

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

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
   android:orientation="vertical"
   android:padding="4dp"
   tools:context=".MainActivity">
   <ListView
      android:id="@+id/listView"
      android:layout_width="fill_parent"
      android:layout_height="fill_parent"
      android:descendantFocusability="beforeDescendants">
   </ListView>
</LinearLayout>

ধাপ 3 - একটি নতুন লেআউট রিসোর্স ফাইল তৈরি করুন এবং নিম্নলিখিত কোড যোগ করুন-

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:orientation="vertical">
   <EditText
      android:id="@+id/ItemCaption"
      android:layout_width="fill_parent"
      android:layout_height="wrap_content"
      android:layout_marginStart="2dip"
      android:singleLine="true">
   </EditText>
</LinearLayout>

পদক্ষেপ 4৷ − src/MainActivity.java

-এ নিম্নলিখিত কোড যোগ করুন
import androidx.appcompat.app.AppCompatActivity;
import android.annotation.SuppressLint;
import android.app.LauncherActivity;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.EditText;
import android.widget.ListView;
import java.util.ArrayList;
public class MainActivity extends AppCompatActivity {
   ListView listView;
   MyAdapter myAdapter;
   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
      listView = findViewById(R.id.listView);
      listView.setItemsCanFocus(true);
      myAdapter = new MyAdapter();
      listView.setAdapter(myAdapter);
   }
   private class MyAdapter extends BaseAdapter {
      private LayoutInflater layoutInflater;
      ArrayList<LauncherActivity.ListItem> myItems = new ArrayList<>();
      MyAdapter() {
         layoutInflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
         for (int i = 0; i < 7; i++) {
               LauncherActivity.ListItem listItem = new LauncherActivity.ListItem();
               listItem.className = "Caption" + i;
               myItems.add(listItem);
         }
         notifyDataSetChanged();
      }
      @Override
      public int getCount() {
         return myItems.size();
      }
      @Override
      public Object getItem(int position) {
         return position;
      }
      @Override
      public long getItemId(int position) {
         return position;
      }
      @SuppressLint("InflateParams")
      @Override
      public View getView(int position, View convertView, ViewGroup parent) {
         ViewHolder holder;
         if (convertView == null) {
            holder = new ViewHolder();
            convertView = layoutInflater.inflate(R.layout.listitem, null);
            holder.caption = convertView.findViewById(R.id.ItemCaption);
            convertView.setTag(holder);
         } else {
            holder = (ViewHolder) convertView.getTag();
         }
         holder.caption.setText(myItems.get(position).className);
         holder.caption.setId(position);
         holder.caption.setOnFocusChangeListener(new View.OnFocusChangeListener() {
            public void onFocusChange(View v, boolean hasFocus) {
               if (!hasFocus) {
                  final int position = v.getId();
                  final EditText Caption = (EditText) v;
                  myItems.get(position).className = Caption.getText().toString();
               }
            }
         });
         return convertView;
      }
   }
class ViewHolder {
   EditText caption;
   }
}

ধাপ 5 − androidManifest.xml

-এ নিম্নলিখিত কোড যোগ করুন
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
   package="app.com.sample">
   <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" android:windowSoftInputMode="adjustPan">
            <intent-filter>
               <action android:name="android.intent.action.MAIN" />
               <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
         </activity>
   </application>
</manifest>

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

অ্যান্ড্রয়েডে লিস্টভিউয়ের ভিতরে ফোকাসযোগ্য সম্পাদনা পাঠ কীভাবে তৈরি করবেন?


  1. অ্যান্ড্রয়েডে লিস্টভিউতে ক্লিক ইভেন্টটি কীভাবে পরিচালনা করবেন?

  2. আমি কীভাবে অ্যান্ড্রয়েডে বৃত্তাকার কোণ সহ একটি তালিকাভিউ তৈরি করব?

  3. কিভাবে editText তৈরি করবেন শুধুমাত্র Android এ Alphabets গ্রহণ করে?

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