Rhys Owain Evans Ответов: 1

Сохранение данных в строковую переменную с увеличивающейся целочисленной частью в android и sqlite


Я пытаюсь назначить при нажатии кнопки имя рецепта выбранного дня недели вместе с датой выбора и днем недели таблице SQLite, каждый раз при нажатии кнопки я хочу, чтобы имя рецепта этой таблицы сохранялось в переменной под названием plan_recipe1, но увеличивалось на 1 каждый раз до тех пор, пока plan_recipe2, plan_recipe3 и т. д. Затем они будут сохранены также вместе с именем плана ввода данных пользователем. Я не могу понять, как это сделать, это то, что у меня есть до сих пор, а потом я просто потерял его и запутался.

Что я уже пробовал:

public class CreateMealPlan extends MainActivity {

    DatePicker datepicker;
    Button submit;
    Button addrecipe;
    List<com.stu54259.plan2cook.Model.Category> listRecipe = new ArrayList<>();
    //SQLiteDatabase db;
    Cursor c;
    RecyclerView recipeList;
    RecipeListAdapter adapterRecipe;
    String recipe_name;
    EditText editPlanName;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.create_meal_plan);
        BottomNavigationView navigation = (BottomNavigationView) findViewById(R.id.navigation);
        navigation.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
            @Override
            public boolean onNavigationItemSelected(@NonNull MenuItem item) {
                switch (item.getItemId()) {
                    case R.id.home:
                        Intent a = new Intent(CreateMealPlan.this,MainActivity.class);
                        startActivity(a);
                        break;
                    case R.id.recipes:
                        Intent b = new Intent(CreateMealPlan.this,RecipeSearch.class);
                        startActivity(b);
                        break;
                    /*case R.id.shoppingList:
                        Intent c = new Intent(CreateMealPlan.this, ShoppingList.class);
                        startActivity(c);
                        break;*/
                    case R.id.mealPlan:
                        Intent d = new Intent(CreateMealPlan.this, MenuPlan.class);
                        startActivity(d);
                        break;
                    /*case R.id.reminder:
                        Intent e = new Intent(CreateMealPlan.this, Reminder.class);
                        startActivity(e);
                        break*/
                }
                return false;
            }
        });
        datepicker = findViewById(R.id.calendarView);
        ListRecipes();
        RecipeListAdapter.OnRecipeClickListener listener = new RecipeListAdapter.OnRecipeClickListener() {
            public void onRecipeClicked(int position, String recipe_name) {
                Log.d("Here is the data:",  recipe_name);
            }
        };
        adapterRecipe = new RecipeListAdapter(this, listRecipe, listener);
        recipeList = findViewById(R.id.recipes);
        RecyclerView.LayoutManager mLayoutManager = new LinearLayoutManager(this,
                LinearLayoutManager.VERTICAL, false);
        recipeList.setLayoutManager(mLayoutManager);
        recipeList.setItemAnimator(new DefaultItemAnimator());
        recipeList.setAdapter(adapterRecipe);

        submit = (Button) findViewById(R.id.create);
        addrecipe = (Button) findViewById(R.id.addRecipe);
        addrecipe.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                CreatePlansRecipes();


            }

        });
        // perform click event on submit button
        submit.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                CreatePlan();

            }

            });
    }
    public void ListRecipes() {
        listRecipe.clear();
        SQLiteDatabase db = (new DatabaseManager(this).getWritableDatabase());
        String selectQuery = " SELECT recipe_name, image, image2, category" + " FROM " + DatabaseManager.TABLE_RECIPE + "  GROUP BY recipe_name";
        c = db.rawQuery(selectQuery, null);
        Log.d("Query", selectQuery);
        if (c.moveToFirst()) {
            do {
                com.stu54259.plan2cook.Model.Category category = new com.stu54259.plan2cook.Model.Category();
                category.setRecipe_name(c.getString(c.getColumnIndex("recipe_name")));
                category.setImage(c.getInt(c.getColumnIndex("image")));
                category.setImage2(c.getString(c.getColumnIndex("image2")));
                category.setCategory_name(c.getString(c.getColumnIndex("category")));
                listRecipe.add(category);
            } while (c.moveToNext());
            c.close();
        }

    }
    public void CreatePlansRecipes(){
        DatabaseManager db;
        int day = datepicker.getDayOfMonth();
        int month = datepicker.getMonth();
        int year = datepicker.getYear();
        SimpleDateFormat sdf = new SimpleDateFormat("EEEE");
        Date d_name = new Date(day, month, year);
        String dayOfTheWeek = sdf.format(d_name);
        db = new DatabaseManager(getApplicationContext());
        db.createPlanRecipe(d_name, dayOfTheWeek, recipe_name);
        String Plan_recipe = "plan_recipe1";
        String newPlanName = "plan_recipe" + (Integer.parseInt(Plan_recipe.substring(1,Plan_recipe.length()))+1);
        newPlanName = recipe_name;


    }
    public void CreatePlan () {
        editPlanName = findViewById(R.id.editPlanName);
        String plan_name = editPlanName.getText().toString();
        DatabaseManager db;
        db = new DatabaseManager(getApplicationContext());
        db.createPlan(plan_name, newPlanName, plan_recipe2, plan_recipe3, plan_recipe4, plan_recipe5, plan_recipe6,
                plan_recipe7, plan_recipe8, plan_recipe9, plan_recipe10);


    }
}

1 Ответов

Рейтинг:
0

Richard MacCutchan

Используйте предложение AUTOINCREMENT в столбце базы данных для записей рецепта. Таким образом, вам не нужно беспокоиться о захвате значения между различными вызовами приложения.


Maciej Los

5ed!

Richard MacCutchan

:большой палец вверх: