Я разрабатываю простое приложение для хранения рецептов для Android. Я новичок в программировании для Android. У меня есть два действия: в первом вы проверяете и вводите переменные поиска, а во втором — ListView. Рецепты можно искать по значениям их названий, сложности и типа блюда, используя этот метод:
public class DatabaseManager
{
// other class stuff
public Cursor getMatchingRecipes(String name, String difficulty, String recipeType)
{
// this method has been tested and works fine, the query itself works fine
}
}
Я создаю намерение запустить действие ListView следующим образом:
//code from the SearchParametersActivity
Intent intent = new Intent(this, RecipesListActivity.class);
Bundle bundle = new Bundle();
bundle.putString("name", name); // name is a String variable with value from an EditText
bundle.putString("difficulty", difficulty.toString()); // from a Spinner
bundle.putString("type", type.toString()); // from a Spinner
bundle.putInt("action", DatabaseManager.GET_SEARCH);
intent.putExtras(bundle);
startActivity(intent);
cursor = dbManager.getMatchingRecipes(name, difficulty, type); // calling this from this activity works fine and gives me the correct entries from the database
И вызов запроса из второго действия следующим образом:
//code from the RecipesListActivity
dbManager.open();
String name = getIntent().getExtras().getString("name");
String difficulty = getIntent().getExtras().getString("difficulty");
String type = getIntent().getExtras().getString("type");
cursor = dbManager.getMatchingRecipes(name, difficulty, type); // NOT WORKING
Этот запрос всегда дает пустой курсор. Я уже проверил правильность передачи строк — все они печатаются одинаково в обоих действиях. Однако, если я ввожу те же точные строковые значения вручную, я получаю правильный результат.
String name1 = "egg";
String difficulty1 = "EASY";
String type1 = "MAIN_COURSE";
cursor = dbManager.getMatchingRecipes(name1, difficulty1, type1); // WORKS
Аналогичный метод, который возвращает все строки базы данных, отлично работает в обоих действиях, поэтому я, должно быть, делаю какую-то ошибку при передаче значений через намерение. Это оставляет меня в неведении, любая помощь будет принята с благодарностью.