2015-06-08 2 views
0

Я делаю приложение для Android, чтобы узнать sqllite. Поскольку я использую 7 таблиц, я решил создать 7 файлов классов в папке «DBHelper» и хочу сделать 7 файлов в папке «DBadapter». Вот то, что структура выглядит следующим образом:android sqllite не может быть получен извне пакета

корень

  • DBHelper: 7 вспомогательные файлы (например: PersonHelper.java)
  • DBadapter: 7 адаптер файлов (например: PersonDAO.java)

Но я получаю сообщение об ошибке с PersonDAO.java: «невозможно получить доступ из внешнего пакета», когда я объявил объект: «PersonHelper personHelper = new PersonHelper (контекст);» в конструкторе.

У кого-нибудь есть идея, как исправить это, не помещая все файлы в одну папку? Каков стандарт в отрасли при создании нескольких больших таблиц?

PS: Ошибка исчезла, когда я поместил все файлы в один каталог.

public class PersonDAO { 
private Context context; 

//Database info 
private static final String DATABASE_NAME = "MyDB"; 
private static final int DATABASE_VERSION = 1; 

//Table helper info 
public PersonHelper databaseHelper; 
private SQLiteDatabase db = null; 


//Constructors 
PersonDAO(Context context) { 
    this.context = context; 
    databaseHelper = new PersonHelper(context); //Error: "cannot be accessed from outside package" 
} 
+0

Можете ли вы разместить свой код personHelper или, по крайней мере, конструктор? – mrtn

ответ

1

Ваш конструктор вашего PersonHelper, вероятно, по умолчанию, как это в вашем классе PersonDAO. Таким образом, доступ к нему возможен только из одного пакета. Вы должны изменить его для публики, чтобы получить доступ к нему от PersonDAO:

public PersonHelper(Context context){ 
    ... 
} 
Смежные вопросы