2017-11-02 1 views
1

Ich habe meine SQLiteOpenHelper-Klasse eingerichtet und alles funktioniert in Ordnung, um alle Daten in der SQLite-Datenbank abzurufen. Ich möchte jetzt einen Parameter von mainActivity in meine SQLiteOpenHelper-Klasse übergeben, um bestimmte Datensätze zu finden. Der Benutzer wird Suchkriterien in ein Feld eingeben und diesen Benutzereintrag übergeben, der durchsucht werden soll. Zur Zeit habe ich hart codiert, um nach Kategorie 161 zu suchen, aber hier möchte ich den vom Benutzer übergebenen Parameter verwenden können. Ich habe meinen SQLiteOpenerHelper-Code und meinen mainActivty-Code unten angegeben. Ich habe versucht, einen Parameter in die GetAllUsers() in mainActivity-Datei übergeben, aber Android akzeptiert keine Parameter. Kann jemand bitte helfen Sie mir zu zeigen, was ich den Parameter iÜbergabe eines Parameters von MainActivity.java in meine SQLiteOpenHelper-Klasse

SQLiteOpenHelper Klasse

public ArrayList<HashMap<String, String>> getAllUsers() { 
     ArrayList<HashMap<String, String>> usersList; 
     usersList = new ArrayList<HashMap<String, String>>(); 
     String[] columns = {"id", "company", "firstname", "lastname", "category"}; 

     SQLiteDatabase database = this.getWritableDatabase(); 
     Cursor cursor = database.query("members", columns, "category = 161", null, null, null, "company"); 
     if (cursor.moveToFirst()) { 
      do { 
       HashMap<String, String> map = new HashMap<String, String>(); 
       map.put("id", cursor.getString(0)); 
       map.put("company", cursor.getString(1)); 
       map.put("firstname", cursor.getString(2)); 
       map.put("lastname", cursor.getString(3)); 
       map.put("category", cursor.getString(4)); 

       usersList.add(map); 
      } while (cursor.moveToNext()); 
     } 
     database.close(); 
     return usersList; 
    } 

mainActivity.java

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     // Get User records from SQLite DB 
     ArrayList<HashMap<String, String>> userList = controller.getAllUsers(); 
+0

Sie Parameter übergeben können, warum android nicht – rajahsekar

Antwort

0

Ich sehe nicht, in die SQLite-Abfrage müssen tun müssen, passieren ein Problem hier. Definieren Sie einfach die Methode als:

public ArrayList < HashMap< String, String >> getAllUsers(int category){ 
    // 
} 

Dann statt "category = 161", "category = " + category als dritter Parameter in Abfrage verwenden.

Und es aus Haupttätigkeit nennen wie:

ArrayList < HashMap< String , String>> userList = controller.getAllUsers(161); 
+0

Vielen Dank für Ihre Antwort akzeptieren. Ja, das ist, was ich versucht habe, aber Fehler auf der MainActivity bekommen. Ich werde es erneut versuchen und sehen, ob es das wieder tut – Kevin

Verwandte Themen