Java ArrayAdapter()中的上下文

Java ArrayAdapter()中的上下文,java,android-studio,Java,Android Studio,我第一次使用java在android studio中工作。 我正在尝试制作一个应用程序,其中SeekBar用于制作时间表 之前,我制作了一个家庭成员和一个音频播放器的列表视图SeekBar 但是作为main活动的“上下文”的角色。我不清楚这个或这个 代码 seekbar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { final ListView listView = (ListView)fi

我第一次使用java在android studio中工作。 我正在尝试制作一个应用程序,其中
SeekBar
用于制作时间表

之前,我制作了一个家庭成员和一个音频播放器的
列表视图
SeekBar

但是作为
main活动的“上下文”的角色。我不清楚这个
这个

代码

 seekbar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
        final ListView listView = (ListView)findViewById(R.id.timeTableList);

        @Override
        public void onProgressChanged(SeekBar seekBar, int i, boolean fromUser) {
            int  seekbarNumber = i;

            ArrayList<Integer> arrayList = new ArrayList<>();
            for(int j=1;j<=10;j++)
                arrayList.add(seekbarNumber*j);

            adapter = new ArrayAdapter<Integer>(MainActivity.this, android.R.layout.simple_list_item_1,arrayList);
            listView.setAdapter(adapter);

        }
seekbar.setonseekbarchaneglistener(新的seekbar.onseekbarchaneglistener(){
最终ListView ListView=(ListView)findViewById(R.id.timeTableList);
@凌驾
public void onProgressChanged(SeekBar SeekBar、int i、boolean fromUser){
int seekbarNumber=i;
ArrayList ArrayList=新的ArrayList();

对于(int j=1;j在Java
中,任何非静态方法中的此
都指其方法已被调用的对象的实例。在您的代码中,当调用
seekbar#setOnSeekBarChangeListner
时,您需要传递实现
seekbar#OnSeekBarChangeListner
接口的类的实例同时声明和实例化一个类在Java中称为匿名类(您可以阅读更多关于它们的信息),匿名类隐藏封闭范围的变量,这意味着在匿名类内
引用匿名类的实例,但是
ArrayAdapter
构造函数需要
上下文
类的实例或任何子类(如
Activity
)作为第一个参数封闭范围的类,您必须通过类名称引用它们,在类名称中声明它们,就像在您的案例中
MainActivity一样。这
引用
MainActivity
类的实例,它是
Activity
类的子类,当您传递
MainActivity时,它是
Context
的子类e> ArrayAdapter
构造函数传递
MainActivity
类的实例