2015-09-21 9 views
9

Geçerli Android projemde, görüntülemeleri bağlamak ve bunlar için onClick ek açıklamalarını kullanmak için Butterknife kitaplığını kullanıyorum. Bu, tüm bile parçalar halinde inşaat büyük ama şimdi ben bir çözüm bulamıyorum noktada değilim: Butterknife bağlama Search Menu'den Menu'ye git

Ben ActionBar yeni ToolBar kullanmak ve içine bir SearchView ile Menüsü şişirmek. Bu SearchView ben @OnTextChanged ek açıklama kullanmak istiyorum ama menü öğesinin ActionView ile bağlama yöntemini çağırdığınızda Butterknife o RootLayout başka Görüntüleme bulamıyorum ActionView yine ve tabii tüm Görüntüleme reinstanciate çalışır.

Yani Butterknife ile tek View eklemek için bir yol yoktur ya da ben bu yüzden bağlama yöntemine Bu Görünümü geçebilir benim RootLayout ve ToolBarView tüm Görüntüleme içeren bir görünümü alabilirim? Örneğin, Activites'te menü ID'leri için de findViewById'u arayabilirim fakat Fragmanımdan getView() kullanırsam işe yaramaz. Bunun için bir fikrin var mı?

+0

bir özellik bunu gerçekleştirmek için istendi, ancak Jake Wharton tarafından reddedildi. Lütfen konuya bakın [# 41] (https://github.com/JakeWharton/butterknife/issues/41) ve [# 416] (https://github.com/JakeWharton/butterknife/issues/416) ve ** Bunu sadece görüşle ilgili şeylere yardımcı olmaya odaklanmak istiyorum. ** – Sufian

cevap

7

SearchView bir menü öğesi olduğu için bunun mümkün olmadığını düşünüyorum. Menü bildirgesinde kullandığınız kimlik, bu görünümün faaliyetinin değil, numaralı menüde tanımladığını ve muhtemelen Butterknife'ın bunu neden bağlayamayacağını belirtir.

Ben yapmanız gereken korkuyorum:

@Override 
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { 
    inflater.inflate(R.menu.bookings_list_menu, menu); 
    SearchView searchView = (SearchView) menu.findItem(R.id.action_search).getActionView(); 

    searchView.setOnSearchClickListener(...); 
    searchView.setOnCloseListener(...); 
    searchView.setOnQueryTextListener(...); 

    super.onCreateOptionsMenu(menu, inflater); 
}