OnSeekBarChangeListener

OnSeekBarChangeListener

我对如何剖析此错误消息有误解。我知道这样做有更简单,更优雅的方法,但是我只是想以这种方式来帮助理解。我们正在制作一个应用程序,其中使用搜索栏完成时间表。抱歉丢了很多代码,但我无法理解它试图告诉我什么。

我们已经制作了一个音频播放器搜索栏和一个用于家庭成员姓名的数组列表。我正在尝试利用有限的经验来创建此应用。为什么这不起作用?

解释越简单越好。在这个阶段不可能光顾。

香港专业教育学院读过类似的问题,但不是特定于此问题。例如cannot resolve constructor 'arrayadapter(android.widget.adapterview.onitemselectedlistener, int, java.util.arraylist)'

这是我的代码:

//Define Listview and Seekbar in code
        final ListView listView = (ListView) findViewById(R.id.myListView);
        SeekBar seekBar = (SeekBar) findViewById(R.id.mySeekBar);

        //Set max and min Seekbar and get int
        seekBar.setMax(20);
        seekBar.setMin(1);
        seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
            @Override
            public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {

                //Create Arraylist
                ArrayList<Integer> arrayList = new ArrayList<>();
                for (int i = 1; i < 15; i++){
                arrayList.add(i * progress);

                    //create adapter and set listview
                    ArrayAdapter arrayAdapter = new ArrayAdapter<Integer>(this, android.R.layout.simple_list_item_1, arrayList);
                    listView.setAdapter(arrayAdapter);

            }

最佳答案

new SeekBar.OnSeekBarChangeListener是一个匿名内部类,它在类引用内调用this而不是您的SeekBar.OnSeekBarChangeListener类。

此处Activity的第一个参数应该是ArrayAdapter,但是在您的情况下,您将传递Context。因此,您需要使用OnSeekBarChangeListener而不是Activity.this

10-08 08:47