2011-01-28 5 views
3

У меня довольно много кода написано, когда я решил использовать ORMLite.Проблема ListActivity ormlite?

После прочтения док я обнаружил, что мне нужно, чтобы продлить как:

MyClass extends OrmLiteBaseActivity<DatabaseHelper> 

, но я уже продлил его с ListActivity.

Is можно сделать это без расширения OrmLiteBaseActivity?

Tnx заранее.

ответ

7

Не обязательно распространять OrmLiteBaseActivity. Вам просто нужно самому управлять функциями утилиты.

Ваш лучший вариант - создать свой собственный DatabaseHelper внутри вашей деятельности и управлять количеством пользователей, которые есть у него, и отбросить его, когда он будет использован. Вообще говоря, это полезность, которую дает OrmLiteBaseActivity. Механизм, который будет управлять вашими объектами базы данных для вас. Это просто удобство.


Пример:

private static Dao<Agent, Object> agentDao = null; 
public void someMethod() { 
    if(agentDao == null){ 
     helper = (MyDBHelper) OpenHelperManager.getHelper(getContext()); 
     try { 
     agentDao = helper.getAgentDao(); 
     } catch (SQLException e) { 
     e.printStackTrace(); 
     } 
    } 
    } 

Я реализовал способ вернуть свои объекты DAO на классе MyDBHelper. Взгляните на ORMLite Android Javadoc, а также на общее число ORMLite Core Javadoc. Есть много хороших примеров.

+0

Tnx за помощью. Есть ли примеры этого. Я все еще новичок в этом, и некоторый код был бы полезен. – user505160

1

[Ответ Ника в порядке, но я думал, что добавлю дополнительную информацию. ]

ORMLite отсутствует OrmLiteBaseListActivity класс, который был добавлен в версию 4.10 - извините за пропущенное. Тем временем вы можете легко создать свою собственную версию этого класса, скопировав класс OrmLiteBaseTabActivity, изменив класс, который он расширяет с TabActivity до ListActivity. Затем измените все классы активности списка, чтобы расширить этот новый класс. Как только 4.10 выйдет, вы можете вернуться и удалить класс.

Например:

public abstract class OrmLiteBaseListActivity<H extends OrmLiteSqliteOpenHelper> 
    extends ListActivity { 
    // insert contents of the OrmLiteBaseTabActivity class here 
}