我试图从另一类的一个类中获取全局变量,但它只是给我一个空字符串。
class Abfahrtsmonitor : AppCompatActivity() {
// Initializing an empty ArrayList to be filled with animals
val Haltestellen: ArrayList<String> = ArrayList()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val Haltestellenname = MapsAnzeigeActivity().haltestellen_name
}
}
是我想要的。我的课程MapsAnzeigeActivity
大致如下:
class MapsAnzeigeActivity : AppCompatActivity(), OnMapReadyCallback {
var haltestellen_name = ""
override fun onCreate(savedInstanceState: Bundle?) {
// ....
}
fun changeHaltestellen() {
haltestellen_name = "new"
}
}
答案 0 :(得分:2)
运行此代码时:
val Haltestellenname = MapsAnzeigeActivity().haltestellen_name
它将创建一个MapsAnzeigeActivity
的新实例,因为haltestellen_name
的默认值为""
,这就是为什么您得到一个空字符串的原因。
要创建全局变量(在Java中称为静态变量),应使用Companion Object。
class MapsAnzeigeActivity : AppCompatActivity(), OnMapReadyCallback {
companion object {
var haltestellen_name: String
}
}
class Abfahrtsmonitor : AppCompatActivity() {
// Initializing an empty ArrayList to be filled with animals
val Haltestellen: ArrayList<String> = ArrayList()
val Haltestellenname = MapsAnzeigeActivity.haltestellen_name
}
答案 1 :(得分:1)
尝试一下:
<div class='main'>
<div class='main__inner'>
<div class='left'>left</div>
<div class='center'>center</div>
</div>
</div>
答案 2 :(得分:1)
您可以选择执行以下操作:
首先,您可以拥有一个这样的单例类,并在需要时获取数据。
public class MyData {
private ArrayList<String> data;
private static MyData INSTANCE = new MyData();
private MyData() {
}
public static MyData getInstance() {
return INSTANCE;
}
public ArrayList<String> getData() {
return this.data;
}
}
如果您想获取数据,请尝试以下代码:
MyData.getInstance().getData()
它将把您的数据保存在内存中,当您关闭应用程序时,您的数据将丢失。
另一种选择是将数据保存在SharedPrefs或Sqlite中,它的好处是即使关闭应用程序也可以获取数据。
另一种简单的方法是像这样使您的数据保持静态。
public static ArrayList<String> data = new ArrayList();