2013-02-07 2 views
0

내 데이터베이스를 사용 중이며 특정 열을 가져 와서 listview를 표시합니다. 내가 편집 텍스트에 시간 데이터를 검색 할 때 특정 데이터 만 다른 볼 현명한 여기 내 문제를 해결하는 방법을 내 목록보기에는 데이터 표시 :안드로이드 어떻게 보이지 않는 내 목록보기?

adapter = new ArrayAdapter<String>(this, R.layout.main , R.id.product_name, optionlist); 
    listview.setAdapter(adapter); 

inputSearch.addTextChangedListener(new TextWatcher() { 
    @Override 
     public void onTextChanged(CharSequence cs, int arg1, int arg2, int arg3) { 
      // When user changed the Text     
     MainActivity.this.adapter.getFilter().filter(cs);        
     }  
    @Override 
     public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {  
     }    
     @Override 
      public void afterTextChanged(Editable arg0) {     
    } 
}); 

내 질문은 : 다음과 같이 addTextChangedListener 방법을 사용하여. 볼

enter image description here

그러나 여기에서 데이터 :이에게 목록보기에 데이터가없는 볼 수없는 검색을 원하지 않을

Here search time data visible like this otherwise no data visible 현명한 데이터가없는 볼이 인접 해 같은

다음

검색 시간 데이터를 볼 수 이렇게 :

enter image description here

+0

목록보기를 숨기는 것보다 어댑터를 지우는 것이 더 좋습니다. –

답변

1

그 차이는 필터입니다. 검색입니다. 필터가 적용되지 않은 채로 데이터를 필터링하면 모든 것이 선택됩니다. 가장 쉬운 방법은 TextView이 비어있을 때 ListViewsetVisibility(GONE)으로 전화하는 것입니다. 또는 스위치를 true로 설정하면 boolean 스위치를 Adapter에두고 항목 수를 0으로 설정할 수 있습니다.

0

추가

android:cacheColorHint="#00000000" 
0

만 자바 클래스에 다음을 추가 XML에서 목록보기에 다음

@Override 
     public void onTextChanged(CharSequence cs, int arg1, int arg2, int arg3) { 
      // When user changed the Text 

      lv.setVisibility(View.VISIBLE); 
      MainActivity.this.adapter.getFilter().filter(cs); 
      String str = inputSearch.getText().toString(); 
      if (str.equals("")) { 
       lv.setVisibility(View.GONE); 
      } 
     } 
0

더 나은 당신이

@Override 
    public void onTextChanged(CharSequence cs, int arg1, int arg2, int arg3) { 
     // When user changed the Text 

     lv.setVisibility(View.VISIBLE); 
     MainActivity.this.adapter.getFilter().filter(cs); 
     String str = inputSearch.getText().toString(); 
     if (str.equals("")) 
     { 
      List<String> list = new ArrayList<String>(); 
      list.add(""); 
      ArrayAdapter<String> adapter = new ArrayAdapter<String>(TestSpinner.this,R.layout.spinner_item,list); 
      adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
      listView.setAdapter(adapter); 
     } 
    } 
를 어댑터에 어댑터 설정하고 빈 문자열을 취소 그것의
관련 문제