Android 搜索sqlite记录并转到特定活动
你好,我知道这是一个基本问题,但我很困惑该怎么办。我已经硬编码了我的第一个应用程序。以下是我尝试过的:Android 搜索sqlite记录并转到特定活动,android,sqlite,Android,Sqlite,你好,我知道这是一个基本问题,但我很困惑该怎么办。我已经硬编码了我的第一个应用程序。以下是我尝试过的: String Search = SearchAuto.getText().toString(); if(SearchAuto.getText().toString().equals("Chowchow") || SearchAuto.getText().toString().equals("Chihuahua")||
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);
}
}
Search.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);
}
}
public void onClick(视图arg0){
String Search=SearchAuto.getText().toString();
Cursor Cursor=dbHelper.fetchbBreedByName(搜索);
strID strID,strBreed,strAnimalType;
strID=cursor.getString(cursor.getColumnIndexOrThrow(“_id”);
strBreed=cursor.getString(cursor.getColumnIndexOrThrow(“品种”);
strAnimalType=cursor.getString(cursor.getColumnIndexOrThrow(“animaltype”));
Log.d(“搜索”,“搜索“+strBreed+”ID为“+strID”);
如果(Search.equals(strBreed)| strAnimaltype){假设SQLite正在工作,我想既然您已经有了strBreed
和strAnimaltype
,您可以这样说
if(strAnimalType.equalsIgnoreCase("cat") { /* or the value to indicate cat */
Intent myIntent = new Intent(Search.this, Cats.class);
myIntent.putExtra(strCat, strBreed);
startActivity(myIntent);
} else if(strAnimalType.equalsIgnoreCase("dog") { /* or the value to indicate dog */
Intent myIntent = new Intent(Search.this, Dogs.class);
myIntent.putExtra(strDog, strBreed);
startActivity(myIntent);
}
我要做的是:
创建两个ArrayList,例如DogsList和CatsList,并向其中添加相应的对象(具体来说是字符串)
希望这个东西能帮助您。这很好,但是如果用户添加了另一条记录呢?如果代码是硬编码的,他将如何查看新创建的记录?