검색 결과를 검색 할 수 있는지 알아야합니다. 예를 들어 바나나 쉐이크, 바나나 아이스크림, 사과 주스, 바나나 주스, 애플 파이 등의 항목이있는 목록보기가 있고 검색 결과가 BANANA이므로 결과가 (바나나 쉐이크, 바나나 아이스크림, 바나나 쥬스)이며 내 이전 검색 아래에 JUICE를 입력하면 다른 검색이 있으며 BANANA JUICE가 나타납니다. 나는 당신이 나를 이해하고 누군가가이 질문에 대해 나에게 빨리 대답 할 수 있기를 바랍니다. 여기 내 코드가 어떻게 생겼는지입니다. BTW 내가 2 검색보기를 만들 때이 일을하려고하면 검색 결과 사이에 (APPLE JUICE, BANANA JUICE) beucase 아무런 연관이 없습니다. 제발 도와주세요.검색 결과를 검색 할 수있는 방법이 있습니까?
public class recepies extends Activity {
ListView lv;
SearchView sv;
SearchView sv2;
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\n"+" kiseli krastavčići\n , kisala paprika\n,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.searchView1);
sv2=(SearchView) findViewById(R.id.searchView2);
adapter=new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,recepies);
lv.setAdapter(adapter);
sv2.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;
}
});
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);
}
}
'sv'의 텍스트에'sv2'라는 접두사를 붙이고 그 방식으로 필터를 적용 할 수 있습니다 ... – donkon
필터가 정규 표현식을 사용하는지 모르겠습니다. 너는 그것을 시도 할 수있다. 그것도 작동하지 않으면 ArrayAdapter에 항목을 채울 때 (정규식을 사용하여) 직접 필터링을 수행 할 수 있습니다. –
배열 어댑터와 simplelist1을 사용하여 전체 어댑터 코드 어댑터 = new ArrayAdapter (this, android.R.layout.simple_list_item_1, recepies); lv.setAdapter (adapter); –