如何在列表视图中避免重复 android
How to Avoid Duplication in Listview android
嗨,我正在学习从 assert 文件夹访问数据库文件
在这里我附上我的外部数据库图像
我成功地在列表视图中添加了标题字段,但标题在数据库和我的输出中都重复了,但我只需要一顿早餐、晚餐、午餐
我们该怎么做??
主要活动
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());
}
}
我的数据库class
public Cursor gettitles(SQLiteDatabase db)
{
db = this.getReadableDatabase();
Cursor cursor;
cursor=db.rawQuery("SELECT Title FROM food_details",null);
return cursor;
}
在将数据附加到适配器之前,您可以使用 Set
来消除重复项。然后将集合附加到适配器。
我不会使用原始查询。而是使用第一个不同的布尔值设置为 true 的 SQLiteDatabase.query 实现,如下所示:
Cursor cursor = db.query(true, "YOUR_TABLE", new String[]{"Title"}, null, null, null, null, null, null);
这应该只给每一个。
编辑:
这是来自 Google 的文档:
Android Documentation
嗨,我正在学习从 assert 文件夹访问数据库文件 在这里我附上我的外部数据库图像
我成功地在列表视图中添加了标题字段,但标题在数据库和我的输出中都重复了,但我只需要一顿早餐、晚餐、午餐 我们该怎么做??
主要活动
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());
}
}
我的数据库class
public Cursor gettitles(SQLiteDatabase db)
{
db = this.getReadableDatabase();
Cursor cursor;
cursor=db.rawQuery("SELECT Title FROM food_details",null);
return cursor;
}
在将数据附加到适配器之前,您可以使用 Set
来消除重复项。然后将集合附加到适配器。
我不会使用原始查询。而是使用第一个不同的布尔值设置为 true 的 SQLiteDatabase.query 实现,如下所示:
Cursor cursor = db.query(true, "YOUR_TABLE", new String[]{"Title"}, null, null, null, null, null, null);
这应该只给每一个。
编辑:
这是来自 Google 的文档: Android Documentation