আমার একটা পরিস্থিতি আছে, যেখানে দুটি ক্ষেত্র আছে। 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
এই ধরণের ত্রুটি তৈরি করতে পারে , যা এমনকি ক্র্যাশ এবং হ্যাং হতে পারে .. সুতরাং ডেটা-বাঁধাইয়ের জন্য যান, এটাই নিরাপদ এবং এখন গুগল দ্বারা প্রস্তাবিত ..