2013-07-09 2 views
1

Я пытался построить приложение базы данных с возможностью поиска по образцу SearchableDictionary в Android Samples:SQLiteDatabase Таблицы не созданные в Android

Вспомогательный класс выглядит следующим образом:

public class DataBaseTable { 

public static String DATABASE_NAME ="DICTIONARY"; 
public static int DATABASE_VERSION=1; 
private final DatabaseOpenHelper datahelper; 
public static String TAG="Databse"; 
public static String COL_DEFINITION="DEFINITION"; 
public static String COL_WORD="WORD"; 
public static String FTS_VIRTUAL_TABLE="FTS"; 

public DataBaseTable(Context context) { 
    datahelper=new DatabaseOpenHelper(context); 
} 
private class DatabaseOpenHelper extends SQLiteOpenHelper{ 

    private SQLiteDatabase mDatabase; 
    private Context mHelperContext; 
    private String FTS_TABLE_CREATE="CREATE VIRTUAL TABLE " + FTS_VIRTUAL_TABLE +" USING fts3 (" +COL_WORD + ", " +COL_DEFINITION + ");"; 


    DatabaseOpenHelper(Context context) { 
     super(context, DATABASE_NAME, null, DATABASE_VERSION); 
     mHelperContext=context; 
    } 

    @Override 
    public void onCreate(SQLiteDatabase db) { 


     db.execSQL("CREATE TABLE DICTIONARY ("+ COL_WORD+ " , "+COL_DEFINITION+");"); 
     db.execSQL(FTS_TABLE_CREATE); 

    } 




    @Override 
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
     Log.w(TAG, "Upgrading database from version " + oldVersion + " to " 
       + newVersion + ", which will destroy all old data"); 
     db.execSQL("DROP TABLE IF EXISTS " + FTS_VIRTUAL_TABLE); 
     onCreate(db); 


    } 
} 

И от MainActivity, я звоню DatabaseTable db=new DatabaseTable(this); в onCreate(Bundle) метод. Но я не вижу баз данных в эмуляторе FileExplorer.

Я что-то пропустил?

EDIT: MainActivity выглядит следующим образом

public class MainActivity extends Activity { 

    DataBaseTable db; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     db=new DataBaseTable(this); 
     handeIntent(getIntent()); 

    } 


    private void handeIntent(Intent intent) { 
     if (Intent.ACTION_SEARCH.equals(intent.getAction())) { 
      String query = intent.getStringExtra(SearchManager.QUERY); 
      Cursor c = db.getMatch(query, null); 
      int[] to = new int[] {R.id.name,R.id.def}; 
     SimpleCursorAdapter adapter=new SimpleCursorAdapter(this, R.layout.info, c, null, to, 0); 
     ListView lv=(ListView) findViewById(R.id.listView1); 
     lv.setAdapter(adapter); 



    } 

    } 


    @Override 
    protected void onNewIntent(Intent intent) { 
     super.onNewIntent(intent); 
     handeIntent(intent); 
    }  
} 
+0

показать соответствующий код из 'MainActivity' , Также посмотрите на logcat, если есть ошибки или исключения traceback. Если это так, покажите их также –

+0

Logcat не показывает ошибок/исключений. Вот почему я продолжаю задаваться вопросом, называется ли класс помощника базы данных. –

+1

Вы можете использовать отладчик или вести журнал, чтобы проверить, вызван ли класс (но я думаю, что это так). Вы посмотрели на правильный каталог для db, который должен быть чем-то вроде «/ data/data//databases» (если я правильно помню)? –

ответ

Смежные вопросы