2011-09-17 15 views
16

Tôi có một mục trình đơn như là một phần của trình đơn thanh hành động của tôi, và tôi đang thiết lập các lớp xem hành động để widget tìm kiếm như vậy:Setting gợi ý văn bản cho widget tìm kiếm khi sử dụng như là một phần của menu

<item android:id="@+id/menu_search" 
     android:title="Search" 
     android:icon="@drawable/ic_menu_search" 
     android:showAsAction="always" 
     android:actionViewClass="android.widget.SearchView" /> 

Điều này làm cho tiện ích tìm kiếm bật ra khi được nhấp - tuy nhiên, tôi muốn nó luôn hiển thị và tôi cũng muốn có thể đặt gợi ý truy vấn, v.v.

Khi tôi cố gắng gọi SearchView searchItem = (SearchView) menu.findItem(R.id.menu_search) để nhận tham chiếu với nó, nó ném một lỗi vì mục đó không thể được chuyển đến một số SearchView.

Trả lời

10

này sẽ làm cho hộp tìm kiếm ActionView luôn hiển thị, theo mặc định:

searchView.setIconifiedByDefault(false); 

này cho hộp tìm kiếm để luôn luôn được mở rộng. Biểu tượng có nghĩa là bạn cần phải nhấn vào biểu tượng để làm cho hộp tìm kiếm xuất hiện.

2

Hãy thử getActionView; findItem đang trở lại một MenuItem, không phải là nó sử dụng Xem

(SearchView)menu.findItem(R.id.menu_search).getActionView() 
+0

th Anks, đó là làm việc! bạn có biết cách hiển thị chế độ xem hành động thay vì chỉ khi mục menu được nhấn không? – jcvandan

+0

Xin lỗi, tôi không chắc ý bạn là gì. Bạn có thể giải thích những gì đang xảy ra ngay bây giờ không? –

85

Bạn có thể đặt văn bản gợi ý để SearchView sử dụng api setQueryHint (CharSequence gợi ý)

SearchView searchView = (SearchView) menu.findItem(R.id.menu_search).getActionView(); 
searchView.setQueryHint("Query Hint"); 

Refer the documentation

0

mức API tối thiểu nên là 11 sau đó báo lỗi sẽ không được hiển thị

<uses-sdk 
    android:minSdkVersion="11" 
    android:targetSdkVersion="18" /> 
Các vấn đề liên quan