我对如何剖析此错误消息有误解。我知道有更简单、更优雅的方法可以做到这一点,但我只是想这样做以帮助理解。我们正在制作一个应用程序,其中搜索栏用于完成时间表。很抱歉转储一堆代码,但我无法理解它试图告诉我的内容。我们已经制作了一个音频播放器搜索栏和一个家庭成员姓名数组列表。我正在尝试使用有限的经验来创建此应用程序。为什么这不起作用?解释越简单越好。在这个阶段不可能光顾。我读过类似的问题,但它并不特定于这个问题。例如无法解析构造函数 '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); }
2 回答
慕工程0101907
TA贡献1887条经验 获得超5个赞
new SeekBar.OnSeekBarChangeListener是一个匿名内部类,在类内部调用this引用SeekBar.OnSeekBarChangeListener该类而不是您的Activity类。
这里的第一个参数ArrayAdapter应该是 a Context,但在你的情况下你传递的是你的OnSeekBarChangeListener。所以你需要使用Activity.this而不是this.
慕桂英4014372
TA贡献1871条经验 获得超13个赞
您在创建 ArrayAdapter 时使用了不正确的上下文,因为this下面的代码将引用SeekBar而不是 Activity。使用YourActivity.this而不是仅使用this.
ArrayAdapter arrayAdapter = new ArrayAdapter<Integer>(this, android.R.layout.simple_list_item_1, arrayList);
添加回答
举报
0/150
提交
取消
