0
我有两个活动和多个数据库类,我想在从Activity1到Activity2并在Activity2中加载DatabaseAdapter类时从extras中传递数据库类的名称。通常情况下,我使用使用额外传递的字符串调用SQLiteOpenHelper
DatabaseAdapter databaseadapter = new DatabaseAdapter(this);
这可行,但效率不高。
1)Activity1:导致Activity2。在extras中,它将以字符串形式传递“DatabaseAdapter”。
2)在我的第二个活动中,我想使用这个DatabaseAdapter类的方法来扩展SQLiteOpenHelper类。
我试过使用Class<?> c = Class.forName("mypackage.MyClass");
但是这会抛出未处理的异常:java.lang.class not found。
的问题是我在Activity1中有一个列表视图。这就像Quiz1 Quiz2 Quiz3 ....点击每个元素开始一个测验(Activity2),每个测验都有它的数据库。我传递一个字符串,并使用如果条件在活动2中是这样的:if(string.equals(“Quiz1”)){DatabaseAdapter1 databaseadapter = new DatabaseAdapter1(this); } if(string.equals(“Quiz2”)){DatabaseAdapter2 databaseadapter = new DatabaseAdapter2(this); }等等。它有效,但代码变得很长。 –
@HasanSaykın而不是使用数据库使用表,例如tableQuiz1,tableQuiz2和搜索从'putExtra'传递的每个活动,如选定的测验 –
因此,你建议我有一个大的数据库类里面充满了表?但我想保留我的表在单独的类(关于性能和易于编辑) –