6

एंड्रॉयड डेवलपर के menu guide में यह उल्लेख किया गया है कि:प्रासंगिक कार्रवाई मोड कस्टम व्यवहार

कार्रवाई मोड अक्षम है, और प्रासंगिक कार्रवाई पट्टी गायब हो उपयोगकर्ता सभी आइटम deselects जब वापस बटन दबाता है, या हो गया का चयन करता है बार के बाईं ओर कार्रवाई।

तकनीकी तौर पर, इसका मतलब है कि mActionMode.finish(), BACK बटन दबाएँ, या Done कार्रवाई चयन कॉल ActionMode.Callback onDestroyActionMode() विधि।

मेरा प्रश्न है कि कैसे एक कस्टम क्रिया (उदाहरण के Toast("Action mode exit by Done select") के लिए) प्रदर्शन करने के लिए है उपयोगकर्ता का चयन करता है जब Done, और एक अन्य कार्रवाई (के लिए पूर्व। Toast("Action mode exit by BACK")) जब उपयोगकर्ता प्रेस BACK?

+0

सीएबी की वर्तमान स्थिति (खुले/खुले नहीं) और सूची में चयनित वस्तुओं की संख्या की निगरानी करें और आप निर्धारित कर सकते हैं कि सीएबी को बंद करने के लिए किस विधि का उपयोग किया गया था। – Luksprog

+2

एलेक्सियोदेव ने इसी तरह के एक प्रश्न का उत्तर दिया [यहां] [1]। [1]: http://stackoverflow.com/a/14090730/836413 –

उत्तर

2

इस समस्या को हल करने के लिए आप एक दृष्टिकोण ले सकते हैं जो आपके द्वारा बनाए गए क्रिया मोड से किए गए बटन को छुपाने के लिए थीम का उपयोग कर रहा है। फिर, आप अपने द्वारा बनाए गए प्रत्येक एक्शन मोड में अपना स्वयं का पूर्ण बटन जोड़ते हैं। जाहिर है, तो आप ट्रैक कर सकते हैं कि onDestroyActionMode को आपके किए गए बटन को हिट या बैक बटन के कारण बुलाया गया था या नहीं। यहां एक थीम है जिसे आप उन गतिविधियों पर लागू कर सकते हैं जिन्हें आपको पूरा करने के लिए आवश्यक है।

<style name="HideActionModeCloseTheme" parent="@android:style/Theme.DeviceDefault"> 
    <item name="android:actionModeCloseButtonStyle">@style/NoCloseButton</item> 
</style> 

<style name="NoCloseButton" parent="@android:style/Widget.DeviceDefault.ActionButton.CloseMode"> 
    <item name="android:visibility">invisible</item> 
</style>