最基础的adapter
public class SpeechListAdapter extends BaseAdapter {
private final List<String> mData = new ArrayList<>();
private final Context mContext;
public SpeechListAdapter(Context context, List<String> data) {
this.mData.addAll(data);
this.mContext = context;
}
public void updateData(List<String> infos) {
mData.clear();
mData.addAll(infos);
notifyDataSetChanged();
}
@Override
public int getCount() {
if (mData.size() == 0) {
return 0;
}
return Integer.MAX_VALUE;
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return position % mData.size();
}
@SuppressLint("ViewHolder")
@Override
public View getView(int position, View convertView, ViewGroup parent) {
convertView = LayoutInflater.from(mContext).inflate(R.layout.speech_dialog_list_item, parent, false);
TextView txt_aSpeak = (TextView) convertView.findViewById(R.id.tv_item);
txt_aSpeak.setText(mData.get(position % mData.size()));
return convertView;
}
}
自动轮播代码
private void initBanner() {
Disposable dispose = Observable
.interval(50, TimeUnit.MILLISECONDS)
.doOnNext(new Consumer<Long>() {
@Override
public void accept(Long aLong) throws Exception {
lv.smoothScrollBy(1, 0);
}
})
.observeOn(AndroidSchedulers.mainThread())
.subscribe();
compositeDisposable.add(dispose);
}