Я пытаюсь сделать recyclerview из строк таблицы html.
Я сделал адаптер и recycler_item макет.Как сделать просмотр ресайклеров несколькими наборами данных?
public class RecyclerAdapter extends RecyclerView.Adapter<RecyclerAdapter.ViewHolder> {
private String[] mDataset;
// класс view holder-а с помощью которого мы получаем ссылку на каждый элемент
// отдельного пункта списка
public static class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener{
// наш пункт состоит только из одного TextView
public LinearLayout Item;
public TextView mTextView;
public TextView mTextView1;
public TextView mTextView2;
public LinearLayout mLabel;
private Context context;
public ViewHolder(View v) {
super(v);
mTextView = (TextView) v.findViewById(R.id.tv_recycler_item);
mTextView1 = (TextView) v.findViewById(R.id.tv_recycler_item2);
mTextView2 = (TextView) v.findViewById(R.id.tv_recycler_item3);
// mLabel = (LinearLayout) v.findViewById(R.id.extended);
Item = (LinearLayout) v.findViewById(R.id.Item);
context = v.getContext();
v.setClickable(true);
v.setOnClickListener(this);
}
@Override
public void onClick(View v) {
Intent intent = new Intent(context, ExtendedActivity.class);
context.startActivity(intent);
}
}
// Конструктор
public RecyclerAdapter(String[] dataset) {
mDataset = dataset;
}
// Создает новые views (вызывается layout manager-ом)
@Override
public RecyclerAdapter.ViewHolder onCreateViewHolder(ViewGroup parent,
int viewType) {
// create a new view
View v = LayoutInflater.from(parent.getContext())
.inflate(R.layout.recycler_maket, parent, false);
// тут можно программно менять атрибуты лэйаута (size, margins, paddings и др.)
ViewHolder vh = new ViewHolder(v);
return vh;
}
// Заменяет контент отдельного view (вызывается layout manager-ом)
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
holder.mTextView.setText(mDataset[position]);
}
// Возвращает размер данных (вызывается layout manager-ом)
@Override
public int getItemCount() {
return mDataset.length;
}
В основной деятельности есть цикл, который разбор HTML документа, и записывает elementid текста в массив.
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
// return inflater.inflate(R.layout.fragment_fragment_task, container, false);
View rootView = inflater.inflate(R.layout.fragment_fragment_task, container, false);
String[] myDataset = getDataSet();
mRecyclerView = (RecyclerView) rootView.findViewById(R.id.my_recycler_view);
// если мы уверены, что изменения в контенте не изменят размер layout-а RecyclerView
// передаем параметр true - это увеличивает производительность
mRecyclerView.addItemDecoration(new VerticalItemDecoration(VERTICAL_ITEM_SPACE));
//or
mRecyclerView.addItemDecoration(
new DividerItemDecoration(getActivity()));
//or
mRecyclerView.addItemDecoration(
new DividerItemDecoration(getActivity(), R.drawable.line_divider));
// используем linear layout manager
mLayoutManager = new LinearLayoutManager(getActivity());
mRecyclerView.setLayoutManager(mLayoutManager);
// создаем адаптер
mAdapter = new RecyclerAdapter(myDataset);
mRecyclerView.setAdapter(mAdapter);
return rootView;
}
private String[] getDataSet() {
String[] mDataSet = new String[];
for (int i = 0; i < 100; i++) {
mDataSet[i] = "parsedhtmldata" + i;
}
return mDataSet;
}
Так что этот массив будет текст TextView в recyclerview.
Это может сделать recyclerview с одним элементом.
Итак, как сделать то же самое, но с дополнительными текстовыми изображениями в одном элементе recyclerview?
В соответствии с кодом вы уже используете более одно текстовое изображение в элементе recyclerview, но только установка данных для одного текстового просмотра. Дайте мне знать, если я неправильно понял ваш вопрос. – Jickson
@ Jickson Right! Вы хорошо себя чувствуете. В адаптере я устанавливаю три текстовых поля, но в цикле это только один набор данных. Я понятия не имею, как делать все 3 текстовых изображения в циклах при mainactivity. Да, я знаю, мой английский ужасен) – Alex
Я объяснил вам одно возможное решение в моем ответе. Надеюсь, поможет. Дайте мне знать, если вам нужно разъяснение. – Jickson