我想要完成的是查明查询返回的数据库中是否存在特定列中的信息。如果那里有信息,那么我将有一个声音和一个祝酒词。查询部分工作正常,信息以我想要的方式显示在listView中。 我如何找出该领域的内容? 以下是查询和结果的代码:
public void doSearch(View v) {
String prefValue = UIHelper.getText(this, R.id.editText1);
scans = datasource.findFiltered("isbn = " + prefValue, "isbn ASC");
ArrayAdapter<Scan> adapter = new ScanListAdapter(this, scans);
if (scans.isEmpty()) {
Toast.makeText(this, "ISBN Not Found",Toast.LENGTH_LONG).show();
MediaPlayer mediaPlayer = MediaPlayer.create(this, R.raw.miss);
mediaPlayer.start();
} else {
setListAdapter(adapter);
MediaPlayer mediaPlayer = MediaPlayer.create(this, R.raw.chaching);
mediaPlayer.start();
Scan supply = scans.get(0);
Log.i(LOGTAG, supply+ " is at index ");
if(null == supply) {
} else {
Toast.makeText(this, "Requires Supply!",Toast.LENGTH_LONG).show();
MediaPlayer supplyPlayer = MediaPlayer.create(this, R.raw.meep1);
supplyPlayer.start();
}
}
}
以下是查询:
public List<Scan> findFiltered(String selection, String orderBy) {
Cursor cursor = database.query(ScanDBOpenHelper.TABLE_SCANS, allColumns,
selection, null, null, null, orderBy);
Log.i(LOGTAG, "Returned " +cursor.getCount() + " rows");
List<Scan> scans = cursorToList(cursor);
return scans;
}
private List<Scan> cursorToList(Cursor cursor) {
List<Scan> scans = new ArrayList<Scan>();
if (cursor.getCount() >0) {
while (cursor.moveToNext()) {
Scan scan = new Scan();
scan.setId(cursor.getLong(cursor.getColumnIndex(ScanDBOpenHelper.COLUMN_ID)));
scan.setTitle(cursor.getString(cursor.getColumnIndex(ScanDBOpenHelper.COLUMN_TITLE)));
scan.setIsbn(cursor.getString(cursor.getColumnIndex(ScanDBOpenHelper.COLUMN_ISBN)));
scan.setAuthor(cursor.getString(cursor.getColumnIndex(ScanDBOpenHelper.COLUMN_AUTHOR)));
scan.setPrice(cursor.getDouble(cursor.getColumnIndex(ScanDBOpenHelper.COLUMN_PRICE)));
scan.setIePrice(cursor.getDouble(cursor.getColumnIndex(ScanDBOpenHelper.COLUMN_IE)));
scan.setMaxLimit(cursor.getString(cursor.getColumnIndex(ScanDBOpenHelper.COLUMN_LIMIT)));
scan.setSupply(cursor.getString(cursor.getColumnIndex(ScanDBOpenHelper.COLUMN_SUPPLY)));
scans.add(scan);
}
}
return scans;
以Scan supply = scans.get(0)开头的部分是我试图查找信息的地方。它坐着,它会做我想要的,但我没有使用正确的字段。 我需要获取供应字段中的信息。有什么建议?如果我不清楚或您需要更多代码,请告诉我。
答案 0 :(得分:1)
怎么样?
for (Scan scan : scans) {
String supply = scan.getSupply();
if (supply != null && supply.length() > 0) {
Toast.makeText(this, "Requires Supply!",Toast.LENGTH_LONG).show();
MediaPlayer supplyPlayer = MediaPlayer.create(this, R.raw.meep1);
supplyPlayer.start();
}
}