Отображение одного столбца из sqlite в просмотр списка - PullRequest
0 голосов
/ 09 мая 2018

У меня есть база данных университетов. Я просто хочу отобразить столбец с названием университета в списке. Для этого я создал объект getData (), который будет извлекать строку. Тогда это будет отображаться в списке. Я получаю название университета из базы данных, но формат неверный. Я просто получаю несколько названий университетов в виде списка.

Вот мой файл базы данных

public class UniversityFinderDB  extends SQLiteOpenHelper{

private static final int DATABASE_VERSION= 1;
static final String DATABASE_NAME="universities.db";
private static final String TABLE_NAME="universityFinder";

private static final String COLUMN_UNIVID="univId";
private static final String COLUMN_UNIVERSITYNAME="univName";
private static final String COLUMN_SCORE="score";

SQLiteDatabase db;




private static final String TABLE_CREATE = "create table IF NOT EXISTS universityFinder (univId integer PRIMARY KEY , univName varchar not null, score integer not null);";

public UniversityFinderDB(Context context) {
    super(context, DATABASE_NAME,null ,DATABASE_VERSION);
}

@Override
public void onCreate(SQLiteDatabase database) {

    database.execSQL(TABLE_CREATE);


}


public void addUser(Universities universities) {
    SQLiteDatabase db = this.getWritableDatabase();

    ContentValues values = new ContentValues();

    values.put(COLUMN_UNIVID, universities.getUnivId());
    values.put(COLUMN_UNIVERSITYNAME, universities.getUnivName());
    values.put(COLUMN_SCORE, universities.getGre());



    // Inserting Row
    db.insert(TABLE_NAME, null, values);
    db.close();
}



public List<String> getData(int input){
    String query="select univName from universityFinder  where score >="+input+"";
    SQLiteDatabase db = this.getReadableDatabase();
    Cursor cursor =db.rawQuery(query, null);

    List<String> attrStr = new Vector<String>();

    if(cursor.moveToFirst()){
        do{
            attrStr.add(cursor.getString(cursor.getColumnIndex(COLUMN_UNIVERSITYNAME)));
            Arrays.toString(new List[]{attrStr});
        }while  (cursor.moveToNext());
    }
    while (cursor.moveToNext()){

    }
    return attrStr;
}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

    String query = "DROP TABLE IF EXISTS " +TABLE_NAME;
    db.execSQL(query);
    onCreate(db);
}


}

вот файл списка, где он будет получать оценку от пользователя, а затем будет отображать только университеты с этой оценкой или выше. Но вместо этого я просто получаю случайный список университетов на выходе.

public class ListviewFinderUniversities extends AppCompatActivity {

UniversityFinderDB myDB;
Universities universities;

ListView finderListview;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_listview_finder_universities);


     myDB = new UniversityFinderDB(this);
     universities = new Universities();

    int gre = getIntent().getIntExtra("Gre",0);


    finderListview = (ListView) findViewById(R.id.finderListView);


    List<String> data = myDB.getData(gre);
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(ListviewFinderUniversities.this, android.R.layout.simple_list_item_1, data);

    finderListview.setAdapter(adapter);
}
}

1 Ответ

0 голосов
/ 10 мая 2018

используйте следующий запрос: Чтобы избежать нескольких имен, а также получить список в порядке

String query = "выбрать отличное univName от UniversityFinder, где Score> =" + input + "упорядочить по univName";

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...