我正在尝试获取应用程序的上下文来打印 Toast 消息。我在Java中使用的函数如下:
Toast.makeText(getApplicationContext(), "Hey! I'm working", Toast.LENGTH_LONG).show();
Run Code Online (Sandbox Code Playgroud)
但现在,我需要在 Kotlin(我开始学习的语言)中实现它,感觉有点失落。我已经尝试了以下代码(在这篇文章中给出),但它不起作用,因为我无法获取应用程序的上下文。
Toast.makeText(this@CoreMainActivity, "Its toast!", Toast.LENGTH_LONG).show()
Run Code Online (Sandbox Code Playgroud)
另外,我无法获取文档getApplicationContext()中描述的上下文。
我很高兴知道如何调用getApplicationContext(),并了解到底this@CoreMainActivity是做什么的(在帖子中this@CoreMainActivity)。请注意,这coreMainActivity是一个 Java 文件。
谢谢!
在下面的代码中,我定义了一个名为的方法loadItems,该方法将Item在文本文件的每一行中创建一个类型为数组的列表。
=和之前,是需要存储在新项目中的数字。总结起来,每一行看起来像:String=int。问题在于loadItems,我没有得到一个新的项目,而是返回一个布尔值,而不是返回一个新项目并将其存储在数组列表中。我之所以这样想是因为新项目是在while函数中创建的,该函数在文本文件中检查新行。
ArrayList<Item> loadItems() throws FileNotFoundException {
File phaseOneFile = new File("Phase-1.txt");
Scanner readPhaseOneFile = new Scanner(phaseOneFile);
while (readPhaseOneFile.hasNextLine()){
String actualLine = readPhaseOneFile.nextLine();
String[] actualLineToItem = actualLine.split("=");
Item newItem = new Item();
newItem.itemName=actualLineToItem[0];
newItem.itemWeight= Integer.parseInt(actualLineToItem[1]);
return loadItems().add(newItem);
}
}
Run Code Online (Sandbox Code Playgroud)