我想知道如何制作SeekBar的ArrayList的ListView (我可以在点击按钮时将更多SeekBars添加到列表中) 我是初学者,所以我已经尝试了几个小时。这是我能做的最好的,但我不知道我是否能做到这一点:
ArrayList<SeekBar> seekbarlist=new ArrayList<SeekBar>();
ListView listseekbars = (ListView) findViewById(R.id.listprog);
final ArrayAdapter<SeekBar> seekbardapter = new
ArrayAdapter<SeekBar>
(this,android.R.layout.simple_list_item_1,android.R.id.text1,seekbarlist);
listseekbars.setAdapter(seekbardapter);
我很乐意得到一些帮助:) 提前谢谢你。
答案 0 :(得分:0)
您可能不希望显示SeekBars列表。您想要显示AS SeekBars的值列表。
您需要制作自定义适配器和自定义列表项布局。
自定义列表项只是一个搜索栏:
seekbar_list_item.xml
<?xml version="1.0" encoding="utf-8"?>
<SeekBar xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/seekBar"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:max="100">
</SeekBar>
自定义适配器:
private class SeekBarAdapter extends ArrayAdapter<Integer>{
List<Integer> data;
int resource;
SeekBarAdapter(Context context, int layoutResource, List<Integer> data){
super(context, layoutResource, data);
this.data = data;
this.resource = layoutResource;
}
@NonNull
@Override
public View getView(int position, View convertView, @NonNull ViewGroup parent) {
Integer value = data.get(position);
if (convertView == null){
convertView = LayoutInflater.from(getContext()).inflate(resource, parent);
}
SeekBar sb = convertView.findViewById(R.id.seekBar);
sb.setProgress(value);
sb.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean wasInitiatedByUser) {
// do what you want with the edited values here.
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
}
});
return convertView;
}
}
然后实施:
ArrayList<Integer> yourvalues = new ArrayList<>();
ListView listseekbars = (ListView) findViewById(R.id.listprog);
SeekBarAdapter seekBarAdapter = new SeekBarAdapter(this, R.layout.seekbar_list_item, yourvalues);
listseekbars.setAdapter(seekBarAdapter);
答案 1 :(得分:0)
我认为您需要做的是使用RecyclerView
而不是ListView
不同之处在于您可以为每个项目制作布局文件,而不是将这些项目添加到RecyclerView
1}}。