Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 搜索sqlite记录并转到特定活动_Android_Sqlite - Fatal编程技术网

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,并向其中添加相应的对象(具体来说是字符串)


希望这个东西能帮助您。

这很好,但是如果用户添加了另一条记录呢?如果代码是硬编码的,他将如何查看新创建的记录?