こんにちは、これが基本的な質問であることは知っていますが、どうすればよいかとても混乱しています。最初のアプリをハードコーディングしました。以下は私が試したことです:
String Search = SearchAuto.getText().toString();
if(SearchAuto.getText().toString().equals("Chowchow") ||
SearchAuto.getText().toString().equals("Chihuahua")||
SearchAuto.getText().toString().equals("German Shephered")||
SearchAuto.getText().toString().equals("Beagle")||
SearchAuto.getText().toString().equals("Shih tzu")||
SearchAuto.getText().toString().equals("Siberian Husky")||
SearchAuto.getText().toString().equals("Pug")||
SearchAuto.getText().toString().equals("Poodle")||
SearchAuto.getText().toString().equals("Pomeranian")||
SearchAuto.getText().toString().equals("Labrador Retriever")){
Intent myIntent = new Intent(Search.this, Dogs.class);
myIntent.putExtra(strDog, SearchAuto.getText().toString().toLowerCase(Locale.ENGLISH));
startActivity(myIntent);
SearchAuto.setText("");
}
else if(SearchAuto.getText().toString().equals("American Shorthair") ||
SearchAuto.getText().toString().equals("Bengal")||
SearchAuto.getText().toString().equals("Himalayan")||
SearchAuto.getText().toString().equals("Maine Coon")||
SearchAuto.getText().toString().equals("Manx")||
SearchAuto.getText().toString().equals("Persian")||
SearchAuto.getText().toString().equals("Ragdoll")||
SearchAuto.getText().toString().equals("Russian Blue")||
SearchAuto.getText().toString().equals("Siamese")||
SearchAuto.getText().toString().equals("Sphynx")){
Intent myIntent = new Intent(Search.this, Cats.class);
myIntent.putExtra(strCat, SearchAuto.getText().toString().toLowerCase(Locale.ENGLISH));
startActivity(myIntent);
SearchAuto.setText("");
}
しかし、データを動的にしたいので、データを保存するデータベースを作成しました。
今私の問題は、私のニーズを満たすためにクエリを作成/上記のコードを変更するにはどうすればよいですか?
これは私がこれまでに試したことです:
DBHelper.class
public Cursor fetchbByAnimalType(String animalType, String breed) throws SQLException {
Cursor mCursor = null;
if (animalType == null || animalType.length () == 0) {
mCursor = myDataBase.query(DB_TABLE, new String[] { KEY_ID, KEY_BREED },
null, null, null, null, null);
}
else {
mCursor = myDataBase.query(DB_TABLE, new String[] { KEY_ID, KEY_BREED },
KEY_ANIMALTYPE + " like '%" + animalType + "%' AND " + KEY_BREED + breed, null, null, null, null);
}
if (mCursor != null) {
mCursor.moveToFirst();
}
return mCursor;
}
public Cursor fetchbBreedByName(CharSequence breed) throws SQLException {
Cursor mCursor = null;
if (breed == null || breed.length () == 0) {
mCursor = myDataBase.query(DB_TABLE, new String[] { KEY_ID, KEY_ANIMALTYPE, KEY_DESCRIPTION,
KEY_DIET, KEY_SHELTER, KEY_HYGIENE, KEY_MEDICATION, KEY_BREED },
null, null, null, null, null);
}
else {
mCursor = myDataBase.query(DB_TABLE, new String[] { KEY_ID, KEY_ANIMALTYPE, KEY_DESCRIPTION,
KEY_DIET, KEY_SHELTER, KEY_HYGIENE, KEY_MEDICATION, KEY_BREED },
KEY_BREED + " like '%" + breed + "%'", null, null, null, null);
}
if (mCursor != null) {
mCursor.moveToFirst();
}
return mCursor;
}
検索クラス
public void onClick(View arg0) {
String Search = SearchAuto.getText().toString();
Cursor cursor = dbHelper.fetchbBreedByName(Search);
String strID, strBreed, strAnimalType;
strID = cursor.getString(cursor.getColumnIndexOrThrow("_id"));
strBreed = cursor.getString(cursor.getColumnIndexOrThrow("breed"));
strAnimalType = cursor.getString(cursor.getColumnIndexOrThrow("animaltype"));
Log.d("Search", "Search for " + strBreed + " ID is " + strID);
if(Search.equals(strBreed) || strAnimaltype){ <<---- I don't know what condition I have to put in here!!!!!! I need help
Intent myIntent = new Intent(Search.this, Dogs.class);
myIntent.putExtra(strDog, Search);
startActivity(myIntent);
}
}
問題が発生している行にインジケーターを付けました。これを実行したことはありませんが、クラッシュすることはわかっています。私が望むものを達成する方法はありますか? これには本当に助けが必要です。ありがとう。