2016-11-18 3 views
1

このような検索ビューを改善する方法があるかどうかを知りたいと思います。 たとえば、「バナナとチョコレートを含むアイスクリーム」、「アップルジュース」、「Coffe」、「Big Cheesburger」のようなアイテムのリストビューがある場合。そして私はこれを検索にタイプします:、バナナチョコレート、検索の結果はバナナとチョコレートのアイスクリームです。私は私の事例を理解してくれることを願っています。私の意見では、説明するのが最も簡単な方法でした。私に答えてください、私はあなたの返信を楽しみにしています。ここに私のコードは検索ビューを改善して、そのアイテムのすべての単語を検索するにはどうすればよいですか?

public class recepies extends Activity { 
    ListView lv; 
    SearchView sv; 
    String[] recepies={"Čili Piletina\n"+ " pileće belo meso \n"+" crvena paprika \n"+" čili papričica \n"+" crveni pasulj \n"+" kukuruzni šećer \n"+" paradajz pelat\n"+" kisela pavlaka\n"+ " biljni začin\n "+ " biber\n "+" ulje ", 
      "Prženija sa svinjskim butom\n" +" svinjski but"+" kiseli krastavčići , kisala paprika,tucana paprika,biljni začin,biber,origano ulje, so, lovorov list", 
      "Peketići od integralnih palačinki\n" + "integralno brašno ,voda, soda bikarbona, ulje, kisela pavlaka, krastavac, paradajz, kikiriki", 
      "Ćufte od mesa i karfiola (hrono recept)\n" + "mleveno meso, karfiol, crni luk, beli luk, peršun, belance, so, biber, kurkuma, ulje, tikvice, sok od paradajza", 
      "Paprika punjena rižom i piletinom\n" +"paprika babura,belo meso,šargarepa,crni luk,pirinač,paradajz,sok od paradajza,biljnog začina,so,biber, kari,peršun, maslinovo ulje,", 
      "Piletina u sosu od nara\n" +"belo meso,\n" + "soja sos,\n" + "biber,\n" + "kurkuma,\n" + "luk,\n" + "soka od nara,\n" + "đumbir,\n" + "pirinač,\n" + "čili ili tabasko sos,\n" + "bbq ili roštilj sos," 
    }; 


    ArrayAdapter<String> adapter; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_recepies); 
     registerClickCallback(); 
     lv=(ListView) findViewById(R.id.listView); 
     sv=(SearchView) findViewById(R.id.searchView); 
     adapter=new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,recepies); 
     lv.setAdapter(adapter); 

     sv.setOnQueryTextListener(new OnQueryTextListener() { 
      @Override 
      public boolean onQueryTextSubmit(String text) { 
       // TODO Auto-generated method stub 
       return false; 
      } 
      @Override 
      public boolean onQueryTextChange(String text) { 
       adapter.getFilter().filter(text); 
       return false; 
      } 
     }); 

    } 
    private void registerClickCallback(){ 
     lv=(ListView) findViewById(R.id.listView); 
     lv.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> parent, View viewClicked, int position, long id) { 
        TextView textView= (TextView) viewClicked; 
        if(position==0){ 
         goToRecepie1(); 
        }else if(position==1){ 
         goToRecepie2(); 
        }else if(position==2){ 
         goToRecepie3(); 
        }else if(position==3){ 
         goToRecepie4(); 
        }else if(position==4){ 
         goToRecepie5(); 
        }else if(position==5){ 
         goToRecepie6(); 
        } 
      } 
     }); 
    } 

    private void goToRecepie6() { 
     Intent intent = new Intent(this, Recepie6.class); 

     startActivity(intent); 
    } 

    private void goToRecepie5() { 
     Intent intent = new Intent(this, Recepie5.class); 

     startActivity(intent); 
    } 

    private void goToRecepie4() { 
     Intent intent = new Intent(this, Recepie4.class); 

     startActivity(intent); 
    } 

    private void goToRecepie3() { 
     Intent intent = new Intent(this, Recepie3.class); 

     startActivity(intent); 
    } 

    private void goToRecepie2() { 
     Intent intent = new Intent(this, Recepie2.class); 

     startActivity(intent); 
    } 

    private void goToRecepie1() { 
     Intent intent = new Intent(this, Recepie1.class); 

     startActivity(intent); 
    } 
} 

答えて

1

これを行う方法です。
すべての項目をセグメント化します。例えば、「バナナとチョコレートを含むアイスクリーム」は、「アイスクリーム」、「クリームあり」、「バナナ付き」、「チョコレート入りアイスクリーム」などに分けることができます。次に、あなたが望むすべての "単語"を検索することができます。
実際には、クライアントの代わりにサーバーでそのことを行います。あなたはそれについての詳細情報を得ることができますLucenceを投げる。

+1

私は、ソース、ケチャップ、チーズ、肉があり、私は検索結果として飛び出さないケーキのチーズをタイプしている場合、私は悪いと説明したかもしれません。チーズ、肉、ケチャップ、ソース、そしてもう一度、チーズ、ケチャップ、ソース、..あなたが説明したように、すべての順序で書くのはあまりにも多いです。 –

関連する問題