Android 在Kotlin的内部类中使用片段的上下文

Android 在Kotlin的内部类中使用片段的上下文,android,android-fragments,kotlin,Android,Android Fragments,Kotlin,我有一个片段SelectFileFragment,它有一个内部类Test。 我需要使用上下文,即在其内部类Test中启动片段SelectFileFragment的活动 我是Kotlin的新手,所以我想知道如何获取上下文,然后在内部类中使用 //there will be a few lines of code in java representing what i'm trying to achieve. class FileSelectFragment : BaseFragment() {

我有一个片段
SelectFileFragment
,它有一个内部类
Test
。 我需要使用上下文,即在其内部类
Test
中启动片段
SelectFileFragment
的活动

我是Kotlin的新手,所以我想知道如何获取上下文,然后在内部类中使用

//there will be a few lines of code in java representing what i'm trying to achieve.

class FileSelectFragment : BaseFragment() {

public Context context;      //java


override fun onCreateView{
....
context = getActivity();   //java
....

}
class Test(){

private fun testMethod(){

context.getString(...);    //java

}

}

}

在Kotlin中,必须显式声明一个类
内部类
,才能使用外部类中的字段/方法。

在Kotlin中,必须显式声明一个类
内部类
,才能使用外部类中的字段/方法。

添加此答案让您明白。答案与上面@ianhanniballake发布的内容相同

请在下面找到完整的代码片段:如果您回答了您的问题,请将@ianhanniballake post标记为答案

class FileSelectFragment : BaseFragment() {

inner class Test(){

    private fun testMethod(){
        context.getString(R.string.app_name);    //java
    }
}

}

添加此答案是为了让您明白。答案与上面@ianhanniballake发布的内容相同

请在下面找到完整的代码片段:如果您回答了您的问题,请将@ianhanniballake post标记为答案

class FileSelectFragment : BaseFragment() {

inner class Test(){

    private fun testMethod(){
        context.getString(R.string.app_name);    //java
    }
}

}

好的。但是我首先如何在Kotlin中获取上下文?并将其保存在变量中。
context
已经是一个可供您使用的属性(Kotlin将
getContext()
重写为
context
),因此您不需要将其保存为变量或执行任何操作。如果你想要一个非空的上下文实例,你可能需要使用
requireContext()
。现在,我得到了一个错误:只有包含类的接收者才能调用内部类的构造函数。你不能从外部类的外部创建内部类。Kotlin和Java都是这样。但是我首先如何在Kotlin中获取上下文?并将其保存在变量中。
context
已经是一个可供您使用的属性(Kotlin将
getContext()
重写为
context
),因此您不需要将其保存为变量或执行任何操作。如果你想要一个非空的上下文实例,你可能需要使用
requireContext()
。现在,我得到了一个错误:只有包含类的接收者才能调用内部类的构造函数。你不能从外部类的外部创建内部类。Kotlin和Java都是如此。谢谢@eldhouse!谢谢@eldhouse!