मैं (फॉर्म घटकों जैसे CheckBox
, EditText
और Spinners
के लिए) कस्टम LabeledView
घटकों का एक सेट बनाने के द्वारा इस से बाहर आतंक से कुछ लेने के लिए कोशिश की है। ये विचार (जैसे LabledEditText
) एक क्षेत्र-विशिष्ट लेआउट को बढ़ाता है और एक मुखौटा (EditText
इस मामले में) के रूप में कार्य करने के लिए न्यूनतम कॉल का उपयोग करता है।
res/layout/component_labeled_view.xml - [TextView][EditText]
res/layout-ar/component_labeled_view.xml - [EditText][TextView]
View
वर्ग ही शामिल हैं:
public LabeledEditText(Context context, AttributeSet attrs) {
super(context, attrs);
LayoutInflater inflator = LayoutInflater.from(context);
mContainer = inflator.inflate(R.layout.component_labeled_edittext, null);
mValueView = (EditText) mContainer.findViewById(R.id.editText);
mLabelTextView = (TextView) mContainer.findViewById(R.id.textView);
align(attrs);
}
public Editable getText() {
return ((EditText)mValueView).getText();
}
public void setText(String text) {
((EditText)mValueView).setText(text);
}
public void addTextChangedListener(TextWatcher watcher) {
((EditText)mValueView).addTextChangedListener(watcher);
}
यह कम से कम किसी भी दोहराव में कटौती करना चाहिए जैसा कि आप अब एक TextView
और EditText
कॉम्बो से LabeledEditText
दृश्य संदर्भ के लिए नहीं बल्कि सक्षम होना चाहिए।
मेरी कार्यान्वयन में जो मैं पूरी तरह से नहीं दिखाया मैं एक कदम आगे चला गया और एक सार LabeledView
वर्ग जो कुछ कस्टम मुझे दोनों लेबल और विशिष्ट स्थितियों में मूल्य अनुकूलित करने के लिए अनुमति देता है विशेषताओं का उपयोग करता बना लिया है (देखें के align(attrs);
लाइन कोड)। इस पर निर्भर करते हुए कि आपका ऐप कितना बड़ा है, आप कुछ ऐसा करने की कोशिश कर सकते हैं?
अपने प्रश्न के उत्तर के रूप में स्वीकार करने वाले समाधान के बगल में स्थित चेक-चिह्न पर क्लिक करना न भूलें। –