2013-12-18 4 views
0

플레이어 목록을보고 싶지만 한 팀에서만보고 싶습니다.sqlite에서 선택하는 방법

List <Players> list = new ArrayList<Players>(); 
list=db.getAllPlayers(); 
ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, list); 
listContent.setAdapter(adapter); 

을하지만 내가 필요한 것은 예를 들어 어디 팀 = '5'팀에서 getAllPlayers이다 : 나는 나의 팀 클래스에서이 같은 모든 플레이어를 볼 수 있습니다. 하지만 어떻게해야합니까? 이것은 sqlitehelper 클래스의 getAllPlayers입니다.

public List<Players> getAllPlayers() { 
     List<Players> speler = new LinkedList<Players>(); 

     String query = "SELECT * FROM " + TABLE_SPELERS; 

     SQLiteDatabase db = this.getWritableDatabase(); 
     Cursor cursor = db.rawQuery(query, null); 



     Players spelers = null; 
     if (cursor.moveToFirst()) { 
      do { 
      spelers = new Players(); 
      spelers.setIdSpeler(Integer.parseInt(cursor.getString(0))); 
      spelers.setShirt(Integer.parseInt(cursor.getString(1))); 
      spelers.setSpeler(cursor.getString(2)); 

       speler.add(spelers); 
      } while (cursor.moveToNext()); 
     } 

     Log.d("Alle spelers in DB:", speler.toString()); 

    return speler; 
    } 

문자열 쿼리를 변경하는 방법이 있습니까? 뭔가

답변

3

변경

String query = "SELECT * FROM " + TABLE_SPELERS; 

SQLiteDatabase db = this.getWritableDatabase(); 
Cursor cursor = db.rawQuery(query, null); 

String query = "SELECT * FROM " + TABLE_SPELERS + " WHERE team=?"; 

SQLiteDatabase db = this.getWritableDatabase(); 
String[] selectionArgs = new String[] { "5" }; 
Cursor cursor = db.rawQuery(query, selectionArgs); 

것처럼 WHERE는 표준 SQL 선택을 지정합니다. ?은 리터럴이 selectionArgs에서 바인딩되는 자리 표시 자입니다.

편집 추가 : 호출하는 메소드에서 선택 args를 설정하려면 메소드 인수를 추가하십시오.

public List<Players> getPlayersForTeam(int teamNumber) { 
    // ... 
    String[] selectionArgs = new String[] { Integer.toString(teamNumber) }; 

내가) (목록 = db.getAllPlayers에서 이러한 selectionArgs을 보낼 수있는 방법을 list = getPlayersForTeam(5);

+0

과 같이 호출; ? 내 무지 미안해. –

관련 문제