2016-03-25 24 views
1

İşlem Çubuğumda bir SerchView İşlevselliği var. İyi çalışıyor. Oluşturduğum bir veritabanından bilgi alır. Ancak, sonuçları PopupDropDown yerine ListView filtrelemeye çalıştım. Bir şeyler yanlış gitti. Bu benim kodum aşağıda.Arama Sonuçlarının Filtreden Çıkarılması Arama Sonuçlarında

public class SearchViewNaListview extends Activity implements OnQueryTextListener { 



public static final String PREFS_NAME = "MyPrefsFile1"; 
private ListView mListView; 

ArrayList<WordDefinition> allWordDefinitions=new ArrayList<WordDefinition>(); 


DictionaryDatabase DictionaryDatabase; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    setContentView(R.layout.main); 



    mListView = (ListView) findViewById(R.id.list); 
    mListView.setAdapter(new ArrayAdapter <WordDefinition>(getApplicationContext(),android.R.layout.simple_list_item_1,allWordDefinitions)); 
    mListView.setTextFilterEnabled(true); 



    DictionaryDatabase=new DictionaryDatabase(this); 
    allWordDefinitions=DictionaryDatabase.getAllWords(); 




    Collections.sort(allWordDefinitions, new CustomComparator()); 


} 


@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
// Inflate the menu; this adds items to the action bar if it is present. 
getMenuInflater().inflate(R.menu.main, menu); 
SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE); 
     SearchView searchView = (SearchView) menu.findItem(R.id.search).getActionView(); 

     searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName())); 
     searchView.setSubmitButtonEnabled(true); 
     searchView.setOnQueryTextListener(this); 

     return super.onCreateOptionsMenu(menu); 
} 

@Override 
public boolean onQueryTextChange(String newText) 
{ 
// this is your adapter that will be filtered 
    if (TextUtils.isEmpty(newText)) 
    { 
      mListView.clearTextFilter(); 
     } 
    else 
    { 
      mListView.setFilterText(newText.toString()); 
     } 

    return true; 
} 

@Override 
public boolean onQueryTextSubmit(String query) { 
// TODO Auto-generated method stub 
return false; 
} 


public class CustomComparator implements Comparator<WordDefinition> { // Para Listar em Ordem Alfabética ListView 
     @Override 
     public int compare(WordDefinition p1, WordDefinition p2) { 
      return p1.word.compareToIgnoreCase(p2.word); 
     } 
    } 
} 

cevap

İlgili konular