gpt4 book ai didi

java - 从其他类调用子类方法 - Android (java)

转载 作者:行者123 更新时间:2023-12-01 07:34:14 26 4
gpt4 key购买 nike

我有一个正在运行的问答游戏,现在正在尝试实现高分。我创建了一个扩展 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();

请阅读nested classes tutorial

关于java - 从其他类调用子类方法 - Android (java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14125454/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com