我有一个正在运行的问答游戏,现在正在尝试实现高分。我创建了一个扩展 SQLiteOpenHelper 的子类 DatabaseHelper 类。我试图从另一个类调用子类 DatabaseHelper 中的方法,但出现错误。这些类不会编译,因此没有 LogCat 输出。我已经在代码中注释了错误。
代码结构建议也值得赞赏!
Highscores.java
public class Highscores extends Activity {
DatabaseHelper dh;
SQLiteDatabase db;
@Override
public void onCreate(Bundle savedInstanceState) {
dh = new DatabaseHelper(context);
}
public class DatabaseHelper extends SQLiteOpenHelper {
public DatabaseHelper(Context context) {
//code
}
public boolean check(long score, int percentage) {
//code
}
}
}
结果.java
public class Results extends Activity {
DatabaseHelper dh; //Error: "DatabaseHelper cannot be resolved to a type."
public void onCreate(Bundle savedInstanceState) {
dh = new DatabaseHelper(); //Error: "DatabaseHelper cannot be resolved to a type."
}
public void showResults() {
if(dh.check(score, percentage) == true) { //Error: "DatabaseHelper cannot be resolved to a type."
dh.insert(score, percentage); //Error: "DatabaseHelper cannot be resolved to a type."
}
}
}
最佳答案
当您需要定义的类之外的类时,我建议将该类创建为单独的类。否则,您需要创建外部类的实例来访问内部类,该内部类将创建 Activity 的实例并在 Activity 实例上调用 DatabaseHelper,这在 Android 中不是一个好方法。
如果您仍想继续使用现有方法,则需要通过以下方式访问它:
OuterClass outerObject = new OuterClass();
OuterClass.InnerClass innerObject = outerObject.new InnerClass();
关于java - 从其他类调用子类方法 - Android (java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14125454/