আমার একটা পরিস্থিতি আছে, যেখানে দুটি ক্ষেত্র আছে। field1এবং field2। পরিবর্তন করতে field2গেলে field1এবং বিপরীত অবস্থায় আমি যা করতে চাই তা সবই খালি । সুতরাং শেষে কেবলমাত্র একটি ক্ষেত্রে এটিতে সামগ্রী রয়েছে।
field1 = (EditText)findViewById(R.id.field1);
field2 = (EditText)findViewById(R.id.field2);
field1.addTextChangedListener(new TextWatcher() {
public void afterTextChanged(Editable s) {}
public void beforeTextChanged(CharSequence s, int start,
int count, int after) {
}
public void onTextChanged(CharSequence s, int start,
int before, int count) {
field2.setText("");
}
});
field2.addTextChangedListener(new TextWatcher() {
public void afterTextChanged(Editable s) {}
public void beforeTextChanged(CharSequence s, int start,
int count, int after) {
}
public void onTextChanged(CharSequence s, int start,
int before, int count) {
field1.setText("");
}
});
এটা কাজ করে জরিমানা যদি আমি সংযুক্ত addTextChangedListenerকরতে field1শুধুমাত্র কিন্তু যখন আমি উভয় ক্ষেত্র জন্য এটা করতে অ্যাপ ক্র্যাশ। স্পষ্টতই তারা একে অপরকে অনির্দিষ্টকালের জন্য পরিবর্তন করার চেষ্টা করার কারণে। একবার field1পরিবর্তিত হয়ে গেলে এটি field2এই মুহুর্তে পরিষ্কার হয়ে যায় তবে এটি সাফ হয়ে
field2যাবে field1এবং আরও ...
কেউ কি কোনও সমাধানের পরামর্শ দিতে পারেন?
starting waiting blocking gc allocএই ধরণের ত্রুটি তৈরি করতে পারে , যা এমনকি ক্র্যাশ এবং হ্যাং হতে পারে .. সুতরাং ডেটা-বাঁধাইয়ের জন্য যান, এটাই নিরাপদ এবং এখন গুগল দ্বারা প্রস্তাবিত ..