Her biri kendi ActionMode'una gereksinim duyan bir görünümde birkaç widget'ım var. Kullanıcı, eylem çubuğunun dışına çıktığında ActionMode'un otomatik olarak kapanmadığını görüyorum. Böylelikle, kullanıcının bir kontrol için bir ActionMode başlatması, ardından bir başka kontrol (bir kutuda longclick) üzerine dokunması ve birincinin üstüne ikinci bir ActionBar atması mümkün olmaktadır. Bu programlama mantığına neden olur.actionmode'nin zaten mevcut olup olmadığını nasıl algılayabilir
Geçerli ActionMode'u etkinlik düzeyi üye değişkeni ile takip edebilir ve yeni bir tane gerekiyorsa mevcut olanı iptal edebilirim. Nasılsa, bu benim kodlarımı okumak ve sürdürmek için dağınık hale getiriyor. Dahası, kullanıcı eylem çubuğunun dışındaki herhangi birşeye dokunduğunda onu hemen reddetmeyi tercih ederim.
Bunu yapmak için iyi bir öneriniz var mı?
Tamam, ama bir yana, kullanıcı alt sınıfları görmediğiniz bir EditText'i tıklattı diyelim. Uygun olmayan işlem çubuğunu nasıl reddediyorsunuz? –
Tamam, eğer doğru anladıysam ... Bunu şöyle yaptım: uygulanan global değişken 'ActionMode mMode;', bir 'onCreateActionMode (...)' yönteminde geçerli eylem moduyla doldurdu ve sonra sadece 'mMode’ı çağır .finish() ' – user1049280
Geçerli eylem modundan çıkmam gerektiğinde, bunu anlıyorum. Peki bitirmeyi ne zaman arayacağınızı nereden biliyorsunuz()? Yani, kullanıcının tıklayabileceği birçok yer var; Her nesneyi alt sınıflara ayırıyor ve MotionEvent.ACTION_DOWN için kontrol ediyor ve ardından bitirmeyi() mi çağırıyorsunuz? Bu çok hataya eğilimli olurdu, bu kod parçaları her yerde biberiye olacaktı. –