Erste Ändern Sie das Kategoriemodell, indem Sie die ID
012 hinzufügen
public class Category {
private int id;
...
public String getId() {
return id;
}
public void setId(int ind) {
this.id = id;
}
...
}
dann legen Sie es, wenn Kategorien
Category cat = new Category();
cat.setId(cursor.getInt(cursor.getColumnIndex(KEY_ID)))
cat.setName(cursor.getString(cursor.getColumnIndex(catName)));
cat.setImage(category_image_urls[i]);
list.add(cat);
übergeben Sie die ID-Fragment B Laden als Rajesh vorgeschlagen
MealsListFragment fragment = new MealsListFragment();
Bundle bundle = new Bundle();
bundle.putInt("categoryId", Categories.get(pos).getId());
fragment.setArguments(bundle);
den Wert im Fragment B erhalten und die getAllMealsValues ändern, indem Sie die Kategorie filtern ID
Chang e DBHelper die Kategorie-ID in den Mahlzeiten Tabelle hinzuzufügen, so stellen Sie sicher, dass Sie eine Kategorie zum Essen zuzuweisen, wenn Mahlzeiten
private static final String categoryId = "category_id";
...
private static final String CREATE_MEALS = "CREATE TABLE "
+ TABLE_Meals + "(" + KEY_ID + " INTEGER PRIMARY KEY," + mealsName
+ " TEXT unique," + desc + " TEXT," + size + " TEXT,"
+ price + " TEXT," + categoryId + " INTEGER)";
...
public Cursor getMeals(int id)
{
Cursor cursor = getReadableDatabase().rawQuery("SELECT * FROM " + TABLE_Meals + " WHERE " + cagegoryId + "=" + String.valueOf(id), null);
return cursor;
}
...
public ArrayList<Meals> GetAllMealsValues(int id)
{
ArrayList<Meals> list = new ArrayList<Meals>();
Cursor cursor = getMeals(id);
int i = 0; // Iterator for 'do-while'. While it gets Categories names, it shall catch all the url's from array as well.
if (cursor.moveToFirst())
{
do
{
Meals meal = new Meals();
meal.setName(cursor.getString(cursor.getColumnIndex(mealsName))); //mealsName
list.add(meal);
i++;
}
while (cursor.moveToNext());
}
if (cursor != null && !cursor.isClosed())
{
cursor.close();
}
return list;
}
Könnten Sie den Code für GetAllMealsValues Methode hinzufügen Hinzufügen klingt die Tabellenstruktur seltsam. – diedu
@diedu Ich habe DBHelper hinzugefügt. Siehe meinen bearbeiteten Post. Auch ... So stelle ich mir die Tischstruktur vor. Im Moment bekommt GetAllMealsValues nur alle Mahlzeiten (12 zum Testen). Ich dachte, es wäre einfacher, wenn ich db wie ich vorher gesagt habe (habe es noch nicht getan) –