Ich befüllen die ArrayList der Zeichenfolgen aus SQLLite-Datenbank. Der Benutzer gibt den Wert ein, den er finden möchte, und das Suchergebnis wird in der Listenansicht für den Benutzer angezeigt. Gerade jetzt, wenn ich einige Einträge in die Datenbank einfüge, sind es immer alle Daten. Ich möchte diese Suche mit Java nicht Sql Abfragen, der Code ich habe scheint, um zu einem gewissen Grad zu arbeiten, aber es tut nicht wirklich, was ich will es tun. Was mache ich hier falsch?Füllen ArrayList von sqllite, und überprüfen Sie, ob es enthält
public void searchEventDetails(){
final ArrayList<String> dbEntries = new ArrayList<>();
final ArrayList<String> entryId = new ArrayList<>();
Cursor cursor = eventDB.getAllDataSearch();
if (cursor.moveToFirst()){
do{
dbEntries.add("Title: "+ cursor.getString(1)+"\n" + "Description: "+cursor.getString(2));
entryId.add(cursor.getString(0));
}while(cursor.moveToNext());
}
cursor.close();
if (dbEntries.contains(txtSearch.getText())){
System.out.print("Value");
}
ListAdapter adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, dbEntries);
ListView listView = (ListView) findViewById(R.id.listViewFromDBSearch);
listView.setAdapter(adapter);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
String itemSelected = "You Selected " + String.valueOf(parent.getItemAtPosition(position));
Toast.makeText(SearchEvent.this, itemSelected, Toast.LENGTH_SHORT).show();
Intent showSearchEvents = new Intent(getApplicationContext(),ShowSearchEvents.class);
search = String.valueOf(parent.getItemAtPosition(position));
for (int i=0;i<dbEntries.size();i++){
if (search.equals(dbEntries.get(i))){
SearchEvent.this.id = entryId.get(i);
}
}
showSearchEvents.putExtra("id", SearchEvent.this.id);
startActivity(showSearchEvents);
}
});
}
btw transferiere deinen listView.setOnItemClickListener in onCreate – Irabzz