অ্যান্ড্রয়েড টেক্সট ওয়াচার.এফটারটেক্সট চেঞ্জড বনাম টেক্সটওয়াচার.অনটেক্সট চেঞ্জড


উত্তর:


199

এই ইভেন্টগুলি নিম্নলিখিত ক্রমে ডাকা হয়:

  1. এর আগেটেক্সট চেঞ্জড (চারসেক্সেন্স, ইন স্টার্ট, ইনট কাউন্ট, ইনট পরে)
    এর অর্থ হ'ল অক্ষরগুলি কিছু নতুন পাঠ্যের সাথে প্রতিস্থাপন করতে চলেছে। পাঠ্যটি অখাদ্য।
    ব্যবহার করুন: যখন আপনাকে পুরানো পাঠ্যটি পরিবর্তন করতে চলেছে সেদিকে একবার নজর দেওয়া দরকার।

  2. onTextChanged (CharSequence s, int start, int পূর্বে, int গণনা)
    পরিবর্তনগুলি করা হয়েছে, কিছু অক্ষর সবেমাত্র প্রতিস্থাপন করা হয়েছে। পাঠ্যটি অখাদ্য।
    ব্যবহার করুন: যখন আপনাকে পাঠ্যের কোন অক্ষরগুলি নতুন দেখা দরকার।

  3. afterTextChanged (সম্পাদনযোগ্য)
    উপরে হিসাবে একই, এখন ছাড়া টেক্সট সম্পাদনাযোগ্য
    ব্যবহার করুন: যখন আপনাকে নতুন পাঠ্যটি দেখতে এবং সম্ভবত সম্পাদনা করতে হবে।

আমি যদি কেবল পরিবর্তনের জন্য শুনছি তবে আমার EditTextপ্রথম দুটি পদ্ধতি ব্যবহার করার দরকার নেই। আমি কেবল তৃতীয় পদ্ধতিতে নতুন মানগুলি গ্রহণ করব এবং প্রয়োজনে নতুন পাঠ্য সংশোধন করব। যাইহোক, যদি মানগুলির ক্ষেত্রে ঘটে যায় এমন সঠিক পরিবর্তনগুলি যদি আমাকে খুঁজে বের করতে হয় তবে আমি প্রথম দুটি পদ্ধতি ব্যবহার করব। পরিবর্তনগুলি শোনার পরে যদি আমারও পাঠ্য সম্পাদনা করার প্রয়োজন হয় তবে আমি এটি তৃতীয় পদ্ধতিতে করব।


অন ​​টেক্সট চেঞ্জডে পাঠ্য পরিবর্তন কেন এএনআর তে নেতৃত্ব দিচ্ছে তা আমাকে বুঝতে সহায়তা করেছে।
সুখভীর সিং

12

টেক্সট চ্যাঞ্জড (সম্পাদনাযোগ্য) এর পরে সর্বজনীন শূন্য

এই পদ্ধতিটি আপনাকে অবহিত করার জন্য ডেকে আনা হয়েছে যে কোথাও কোথাও s, পাঠ্য পরিবর্তন করা হয়েছে। sএই কলব্যাক থেকে আরও পরিবর্তন করা বৈধ , তবে নিজেকে অসীম লুপে না নেওয়ার বিষয়ে সাবধানতা অবলম্বন করুন, কারণ আপনার যে কোনও পরিবর্তন এই পদ্ধতিটিকে পুনরাবৃত্তভাবে পুনরায় ডেকে আনবে। (আপনি বলা হয় না যেখানে পরিবর্তন সংঘটিত কারণ অন্যান্য afterTextChanged () পদ্ধতি ইতিমধ্যে অন্যান্য পরিবর্তন করেছেন পারে এবং অফসেট invalidated। কিন্তু যদি এখানে জানা প্রয়োজন, আপনি ব্যবহার করতে পারেন setSpan(Object, int, int, int)মধ্যে onTextChanged(CharSequence, int, int, int)আপনার জায়গায় চিহ্নিত করতে এবং তারপর এখানে কোথা থেকে খোঁজা স্প্যান শেষ।

টেক্সটচেন্জেডের আগে সর্বজনীন শূন্য

এই পদ্ধতিটি আপনাকে অবহিত করতে বলা হয় যে এর মধ্যে শুরু হওয়া অক্ষরগুলি দৈর্ঘ্যের সাথে নতুন পাঠ্য দ্বারা প্রতিস্থাপন করতে sচলেছে । এই কলব্যাক থেকে পরিবর্তন করার চেষ্টা করা ত্রুটি ।countstartafters

টেক্সটচেনজড পাবলিক শূন্য

এই পদ্ধতি আপনাকে জানানোর জন্য যে বলা হয়, মধ্যে s, countএ প্রারম্ভে অক্ষর startমাত্র পুরানো পাঠ্য যে দৈর্ঘ্য ছিল প্রতিস্থাপিত হয়েছে beforesএই কলব্যাক থেকে পরিবর্তন করার চেষ্টা করা ত্রুটি ।

সেখান থেকে TextWatcher জন্য Android এর রেফারেন্স


আপনি কেবল এপিআই কোডটি কেন অনুলিপি করবেন? অনেক সময় এপিআই হ'ল "মানব-অপঠিত"।
মতুয়া

@ মাতুয়া এই প্রশ্ন / উত্তরটি 11 বছর আগের।
গ্রেগড

তারপরে মন্তব্যগুলি ব্লক করা উচিত আমার অনুমান :)
মাতুয়া

0

Android Textwatcher একটি ধরণের ট্রিগার যা ইনপুট ক্ষেত্রের পাঠ্য পরিবর্তনে ডাকা হয়।

afterTextChanged (Editable s)- পাঠ্য পরিবর্তন করার পরে এই পদ্ধতিটি বলা হয়। কারণ আপনার যে কোনও পরিবর্তনগুলি এই পদ্ধতিটিকে পুনরাবৃত্তভাবে পুনরায় ডেকে আনে, তাই আপনাকে এখানে অপারেশনগুলি করা সম্পর্কে সজাগ থাকতে হবে, অন্যথায় এটি অসীম লুপের দিকে পরিচালিত করতে পারে ।

onTextChanged (CharSequence s, int start, int before, int count)- এই পদ্ধতিটি আপনাকে অবহিত করার জন্য ডেকে আনা হয়েছে যে, এর মধ্যে, শুরুতে গণনা অক্ষরগুলি সবেমাত্র পুরাতন পাঠ্যকে প্রতিস্থাপন করেছে যার পূর্বে দৈর্ঘ্য ছিল। এই কলব্যাক থেকে পরিবর্তন করার চেষ্টা করার জন্য এটি একটি ত্রুটি।


6
ডকুমেন্টেশন অনুলিপি / আটকান দরকারী নয় এবং প্রশ্নের উত্তর দেয় না।
ডেভিড ওয়াসার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.