बनाने के दौरान नहीं बुलाया गया है, मैंने अपने ऐप्स में से एक को नए v22.1.1 समर्थन & एपकोम्पेट लाइब्रेरीज़ में समायोजित करना समाप्त कर दिया है, अधिक जानकारी के लिए here और here देखें। जब मैंने कुछ परीक्षण किया, तो मैं उपयोग कर रहा हूं ActionModes के साथ कुछ बंद था।ऑनपेरेअरेक्शन मोड को एक्शनमोड
जब आप एक ActionMode शुरू एक startSupportActionMode()
कॉल का उपयोग कर - onPrepareActionMode()
नहीं बुलाया जा रहा है - अगर आप अब पदावनत ActionBarActivity आधार वर्ग या नए AppCompatActivity आधार वर्ग का उपयोग यह कोई बात नहीं।
v21.0.3 & v22.0.0 सहित पिछले संस्करणों, में, onPrepareActionMode()
, स्वचालित रूप से बुलाया गया था जब ActionMode शुरू में startSupportActionMode()
का उपयोग कर बनाया गया था।
मैं एक 2.2, 4.4.2 और 5.0 डिवाइस पर परीक्षण किया, तो यह संस्करण निर्भर होने के लिए नहीं लगता है।
किसी को भी पता है, अगर इस व्यवहार करना है, कि v22.1.1 या किसी बग में शुरू किया गया है?
मैं इस issue पाया है, लेकिन वहाँ प्रतिक्रिया यहाँ का एक बहुत ...
संपादित कर सकते हैं 11 2015 नहीं है:
Android issue tracker 159527 में उल्लेख किया है, इस मुद्दे को न केवल v22.1 को प्रभावित करता है एपकंपेट और समर्थन लाइब्रेरी का .x, लेकिन 5.1 एंड्रॉइड कार्यान्वयन भी।
दो पल में संभव अस्थायी समाधान, एक सामान्य से एक:
@Override
public ActionMode startSupportActionMode(final ActionMode.Callback callback) {
// Fix for bug https://code.google.com/p/android/issues/detail?id=159527
final ActionMode mode = super.startSupportActionMode(callback);
if (mode != null) {
mode.invalidate();
}
return mode;
}
और एक 'त्वरित और गंदी' एक (यदि आप अपने ActionMode का दृष्टांत जब):
final ActionMode actionMode = startSupportActionMode(new MyActionMode());
if(actionMode != null) {
actionMode.invalidate();
}
यदि आप डॉन ' एपकोपेट का उपयोग नहीं करें (ActionBarActivity
/AppCompatActivity
) आपको startSupportActionMode()
startActionMode()
के साथ प्रतिस्थापित करने की आवश्यकता है।
दुर्भाग्यवश यह अभी भी स्पष्ट नहीं है कि यह नया व्यवहार या बग का इरादा है या नहीं। API doc के अनुसार यह एक बग/प्रतिगमन है, लेकिन कौन जानता है ...
मैं आपसे सहमत हूँ - यह एक बग है। मैं बस इसमें भाग गया और कुछ समय बिताया कि यह पता लगाने के लिए कि ऑनपेर ... अब और नहीं कहा जाता है। मेरे मामले में, मुझे लगता है कि यह बस मेरे सभी ऑनपेयर को बंद करने के लिए काम करेगा ... कोड को चालू करें ... –
@ डार्कासगा: आपको अपने संपादन को एक जवाब में बदलना चाहिए और इसे स्वीकार करना चाहिए :) –