[英]Android studio - ambiguous method call in inheritance chain (Kotlin Java interoperability)
[英]Inheritance in Java(Android Studio)
我想制作一个测验应用程序,让我的成绩变量在每个活动中都继承。
我不知道如何执行这项任务。
这是我的MainActivity
代码,在其中声明了全局变量。
public class MainActivity extends AppCompatActivity {
public int score=0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void start(View v)
{
Intent intent = new Intent(this,question1.class);
startActivity(intent);
}
}
这是我要在其中继承的类:
public class question1 extends MainActivity {
MainActivity ma= new MainActivity();
ma.score;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_question1);
}
}
在Android中,不建议您使用变量在整个应用程序中存储数据(也不能使用继承来存储数据),这是一种不好的做法。
您要执行的操作:
int
作为score
存储在父类中 score
以做某事 为什么这是一个问题:
首先,继承此score
将不允许您以任何方式在子类中对其进行修改。 Java不允许您覆盖继承字段的值。 请参阅此信息。 其次,在类之间创建继承关系只是为了获取一些数据是徒劳的……因为继承将从父类继承所有内容 ,而这并不是您所需要的。
解:
相反,Android API具有诸如SharedPreferences和SQLite之类的功能,这些功能为您提供了存储数据的选项。
为什么?
因为将这些数据存储在SharedPreferences
或SQLite
中几乎可以看作是将其存储在全局变量中,以便您在需要时在整个应用程序中使用。 它的存储使您可以在需要时进行读/写操作,并且在应用程序关闭时不会被破坏。
请看看这对存储选项Android提供更多的信息。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.