2017-10-22 16 views
0

リストビューのsearchviewで間違った結果を修正する方法を教えてもらえますか?私はリストビュー(1,2,3,4,5)からデータを持っています。私はsearchviewからデータ2を検索すると、それを表示するデータ1を常に表示し、searchviewからデータを検索しなかったときtrueの場合、私はデータを1つの番組1、2ショーあなたのフィルタリングした後、2誤って表示されているonClickビューでリストビューを検索する

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
    setSupportActionBar(toolbar); 
    listView = (ListView) findViewById(R.id.listview); 

    MaterialSearchBar searchBar = (MaterialSearchBar) findViewById(R.id.searchBar); 
    searchBar.setHint("Search.."); 
    searchBar.setSpeechMode(true); 
    final String[] values= new String[]{"cemento","muro","puerta"}; 
    final ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, 
      android.R.layout.activity_list_item,android.R.id.text1,values); 
    listView.setAdapter(adapter); 
    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 

     @Override 
     public void onItemClick(AdapterView<?> adapterView, View view, 
           int position, long id) { 
      if(position==0){ 
       Intent myintent = new Intent(view.getContext(),cemento.class); 
       startActivityForResult(myintent,0); 
      } 
      if(position==1){ 
       Intent myintent = new Intent(view.getContext(),muro.class); 
       startActivityForResult(myintent,1); 
      } 
      if(position==2){ 
       Intent myintent = new Intent(view.getContext(),puerta.class); 
       startActivityForResult(myintent,2); 
      } 
     } 
    }); 



    searchBar.addTextChangeListener(new TextWatcher() { 
     @Override 
     public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) { 

     } 

     @Override 
     public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) { 

      adapter.getFilter().filter(charSequence); 
     } 

     @Override 
     public void afterTextChanged(Editable editable) { 

     } 
    }); 


}} 

答えて

0

をクリックして、あなたのクリックリスナーによる位置は、あなたのif声明の中で持っているものと同じにすることはできません。

可能な解決策:データセットを使用してクリックしたアイテムの位置を取得し、その内容を自分の値と比較します。

関連する問題