समाप्त करने के लिए एक्शन मोड को मजबूर करता है मेरे पास एक संपादन टेक्स्ट है और मैं चाहता हूं कि उपयोगकर्ता कुछ टेक्स्ट चुनने में सक्षम हो और चयनित टेक्स्ट (बोल्ड, इटैलिक, आदि) में कुछ मूल स्वरूपण लागू कर सके। मैं अभी भी मानक प्रतिलिपि, कट, पेस्ट विकल्प दिखाने के लिए चाहता हूं, हालांकि। मैंने एंड्रॉइड प्रलेखन में कहीं भी पढ़ा है कि ऐसा करने के लिए, आपको EditTustomSelectionActionModeCallback() को EditText पर कॉल करना चाहिए और इसे एक्शनमोड कॉलबैक() पास करना चाहिए, इसलिए मैंने यही किया।ओवरफ़्लो बटन बल
मेरी गतिविधि के onCreate में() विधि:
myEditText.setCustomSelectionActionModeCallback(new TextSelectionActionMode());
कॉलबैक घोषणा: यहाँ मेरी कोड है
private class TextSelectionActionMode implements ActionMode.Callback {
@Override
public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
return false;
}
@Override
public boolean onCreateActionMode(ActionMode mode, Menu menu) {
menu.add("Bold");
return true;
}
@Override
public void onDestroyActionMode(ActionMode mode) {
}
@Override
public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
return false;
}
}
समस्या मैं आ रही है कि जब मैं अतिप्रवाह बटन पर क्लिक करें (करने के लिए मेरे "बोल्ड" मेनू आइटम तक पहुंचें), एक्शनमोड तुरंत बंद हो जाता है। अगर मैं सेट यह हमेशा एक कार्रवाई के रूप में दिखाने के लिए, इस का उपयोग करते हुए:
MenuItem bold = menu.add("Bold");
bold.setShowAsActionFlags(MenuItem.SHOW_AS_ACTION_ALWAYS);
यह ठीक काम करता है और मैं इस पर क्लिक कर सकते हैं (हालांकि यह स्पष्ट रूप से कुछ नहीं करता है)। मुझे यहां क्या समझ नहीं आ रहा है?
संपादित करें: बस जोड़ने के लिए ठीक उसी समस्या में है कि मैं चलाने अगर मैं वास्तव में के बजाय प्रोग्राम के रूप में मेनू आइटम जोड़ने की एक सूची बढ़ चाहता था। एक बार फिर, हालांकि, अगर मैं इसे हमेशा एक क्रिया के रूप में दिखाने के लिए मजबूर करता हूं तो समस्या दूर हो जाती है।
ठीक है तो आप समस्या को कैसे रोकते हैं? – MBulava