Tôi có một SearchView
trong một Hoạt động; khi người dùng thực hiện tìm kiếm, một số Fragment
chứa kết quả tìm kiếm sẽ được thêm vào cùng một Hoạt động.Android SearchView OnFocusChangeListener: onFocusChange không được gọi ở tất cả
Bây giờ điều tôi muốn là khi nhấp vào SearchView
(để lấy tiêu điểm và người dùng ở đó), số Fragment
đã được hiển thị (chứa kết quả tìm kiếm) sẽ bị mờ/mờ.
Vì vậy, tôi đã cố gắng để thiết lập một OnFocusChangedListener
cho SearchView
trong onActivityCreated
cuộc sống phương pháp chu kỳ callback của Fragment
, nhưng nó dường như không được gọi là gì cả.
final Activity myActivity = getActivity();
Log.i(TAG, "myActivity>"+myActivity.toString());//check
SearchView mySearchView = (SearchView) myActivity.findViewById(R.id.searchActivity_searchView);
Log.i(TAG, "mySearchView>"+mySearchView.toString());//check
mySearchView.setOnFocusChangeListener(new OnFocusChangeListener() {
@SuppressLint("NewApi")
@Override
public void onFocusChange(View v, boolean hasFocus) {
Log.i(TAG, "onFocusChange OF OnFocusChangeListener IN SearchResultsFragment CALLED.");
if (hasFocus) {
myActivity.getWindow().setDimAmount(1.0f);
}
}
});
Vì vậy, tôi thiếu gì đó? Tôi nên làm gì để có được số onFocusChanged
được gọi khi người dùng nhấp chuột và do đó kích hoạt SearchView
để nhập truy vấn Tìm kiếm của họ vào đó?
Lưu ý: Nếu cần có toàn bộ mã SSCCE, vui lòng hỏi ý kiến, tôi sẽ đăng.
Tại sao bạn không thử dùng setOnClickListener()? – MohanRaj
@MohanRaj Chỉ cần thử rằng, ngay cả khi đó không được gọi là = ( – Solace
Bạn có thể trực tiếp thử điều này trong hoạt động giữ chế độ xem tìm kiếm của bạn, thay vì nhận tham chiếu bên trong đoạn? – MohanRaj