У меня есть editbox в моем приложении. кроме editbox у меня есть один значок поиска. всякий раз, когда пользователь вводит какой-либо один символ, я хочу заменить значок поиска еще одним значком (перекрестный значок), и если пользователь снова удалит все его текст из окна редактирования, я хочу найти значок поиска.заменить значок после изменения текста editbox в android
Для этого я использовал ниже код.
mSearchView.addTextChangedListener (новый TextWatcher() {
@Override
public void onTextChanged(CharSequence searchString, int start, int before, int count) {
initCloseSearchView();
if (mDealerAdapter != null) {
mDealerAdapter.getFilter().filter(searchString);
}
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
}
@Override
public void afterTextChanged(Editable s) {
log.d(TAG, "inside afterTextChanged");
}
});
private void initCloseSearchView(){
int textLength = mSearchView.length();
log.d(TAG, "textLength "+textLength);
if(textLength >= 1){
searchIcon.setVisibility(View.GONE);
View searchView = (View) mLayoutSearch.findViewById(R.id.search);
ViewGroup parent = (ViewGroup)searchView.getParent();
int indexOfSearchView = parent.indexOfChild(searchView);
log.d(TAG, "index of search==>"+indexOfSearchView);
ImageButton closeSearch = new ImageButton(getActivity().getApplicationContext());
closeSearch.setBackgroundResource(R.drawable.close_search);
mLayoutSearch.addView(closeSearch, indexOfSearchView);
}else{
searchIcon.setVisibility(View.VISIBLE);
}
}
с кодом выше я в состоянии заменить значок поиска с крестиком, но когда пользователь удалит его/ее текст из кросс окна редактирования значка появляется больше один раз. Как решить эту проблему.
Благодаря
Вы могли бы добавить скриншот своего макета и xml, если используете. спасибо – piotrek1543