Hai我正在学习从assert文件夹中获取数据库文件 在这里我附上我的外部数据库图像
我成功地在listview中成功添加了标题字段但是在db和我的输出中都重复了标题,但我只需要一份早餐,晚餐,午餐 我们怎么能这样做?
MainActivity
public class MainActivity extends ActionBarActivity {
ListView listView;
SqlLiteDbHelper dbHelper;
FoodSupply foodSupply;
SQLiteDatabase sqLiteDatabase;
Cursor cursor;
TitleAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView= (ListView) findViewById(R.id.listView);
dbHelper = new SqlLiteDbHelper(this);
try {
dbHelper.openDataBase();
} catch (SQLException e) {
e.printStackTrace();
}
//foodSupply= new FoodSupply();
sqLiteDatabase=dbHelper.getReadableDatabase();
cursor=dbHelper.gettitles(sqLiteDatabase);
adapter= new TitleAdapter(getApplicationContext(),R.layout.list_item);
listView.setAdapter(adapter);
if (cursor.moveToFirst())
{
do {
String title;
title=cursor.getString(0);
foodSupply= new FoodSupply(title);
adapter.add(foodSupply);
}while (cursor.moveToNext());
}
}
我的数据库类
public Cursor gettitles(SQLiteDatabase db)
{
db = this.getReadableDatabase();
Cursor cursor;
cursor=db.rawQuery("SELECT Title FROM food_details",null);
return cursor;
}
答案 0 :(得分:1)
我不会使用原始查询。而是使用SQLiteDatabase.query实现,将第一个不同的布尔值设置为true,如下所示:
Cursor cursor = db.query(true, "YOUR_TABLE", new String[]{"Title"}, null, null, null, null, null, null);
这应该只给出一个。
编辑:
这是Google提供的文档: Android Documentation
答案 1 :(得分:0)
在将数据附加到适配器之前,您可以使用Set
来消除重复项。然后将该套装附加到adpater。