এটি আমার বাস্তবায়ন (কিছুটা দীর্ঘ তবে আমার পক্ষে দরকারী!): এই কোডের সাহায্যে আপনি এডিটভিউ পঠনযোগ্য বা সাধারণ করতে পারেন। এমনকি কেবল পঠনযোগ্য অবস্থায়, পাঠ্যটি ব্যবহারকারীর দ্বারা অনুলিপি করা যায়। আপনি ব্যাকগ্রাউডটিকে একটি সাধারণ এডিটেক্সট থেকে আলাদা দেখানোর জন্য পরিবর্তন করতে পারেন।
public static TextWatcher setReadOnly(final EditText edt, final boolean readOnlyState, TextWatcher remove) {
edt.setCursorVisible(!readOnlyState);
TextWatcher tw = null;
final String text = edt.getText().toString();
if (readOnlyState) {
tw = new TextWatcher();
@Override
public void afterTextChanged(Editable s) {
}
@Override
//saving the text before change
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
// and replace it with content if it is about to change
public void onTextChanged(CharSequence s, int start,int before, int count) {
edt.removeTextChangedListener(this);
edt.setText(text);
edt.addTextChangedListener(this);
}
};
edt.addTextChangedListener(tw);
return tw;
} else {
edt.removeTextChangedListener(remove);
return remove;
}
}
এই কোডটির সুবিধা হ'ল এডিট টেক্সটটি সাধারণ এডিটেক্সট হিসাবে প্রদর্শিত হয় তবে সামগ্রীটি পরিবর্তনযোগ্য নয়। রিটার্নের মানটি একটি পরিবর্তনশীল হিসাবে রাখা উচিত যার মধ্যে কেবলমাত্র পঠনযোগ্য রাষ্ট্র থেকে সাধারণ অবস্থায় ফিরে যেতে সক্ষম হয়।
এডিটেক্সটকে কেবল পঠনযোগ্য করে তুলতে, কেবল এটির মতো রাখুন:
TextWatcher tw = setReadOnly(editText, true, null);
এবং এটিকে আগের বিবৃতি থেকে সাধারণ ব্যবহার করতে:
setReadOnly(editText, false, tw);