Как я могу добавить виды внутри LinearLayout в ListView? Я хочу отобразить некоторую дополнительную информацию внутри ListView, и я хочу добавить их в цикл for, проходящий через добавляемые элементы. Вот код, который я в настоящее время:Android добавить виды внутри ListView
активность:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<android.support.v7.widget.RecyclerView
android:id="@+id/recycler"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:scrollbars="vertical"
android:layout_marginTop="0dp" />
</LinearLayout>
list_recycler:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:paddingRight="?android:attr/scrollbarSize">
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="15dp"
android:layout_marginEnd="6dp"
android:layout_marginTop="6dp"
android:layout_marginBottom="6dp">
<TextView android:id="@+id/list_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/textColor"
android:textSize="16sp"
android:layout_alignParentLeft="true"/>
<TextView android:id="@+id/list_title_summary"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/textColor"
android:textSize="16sp"
android:layout_alignParentLeft="true"/>
<!-- VIEWS SHOULD BE ADDED HERE -->
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
</LinearLayout>
</RelativeLayout>
</LinearLayout>
адаптер:
public class RVAdapter extends RecyclerView.Adapter<RVAdapter.RecyclerViewHolder> {
public static class RecyclerViewHolder extends RecyclerView.ViewHolder {
TextView personName;
TextView personAge;
RecyclerViewHolder(View itemView) {
super(itemView);
personName = (TextView)itemView.findViewById(R.id.person_name);
personAge = (TextView)itemView.findViewById(R.id.person_age);
}
}
List<Items> list;
public RVAdapter(List<Items> list){
this.list = list;
}
@Override
public void onAttachedToRecyclerView(RecyclerView recyclerView) {
super.onAttachedToRecyclerView(recyclerView);
}
@Override
public RecyclerViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
View v = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.list_recycler, viewGroup, false);
return new RecyclerViewHolder(v);
}
@Override
public void onBindViewHolder(RecyclerViewHolder recyclerViewHolder, int i) {
recyclerViewHolder.personName.setText(persons.get(i).name);
recyclerViewHolder.personAge.setText(persons.get(i).age);
}
@Override
public int getItemCount() {
return persons.size();
}
}
Предметы:
public class Items {
String name;
String age;
public Items(String name, String age) {
this.name = name;
this.age = age;
}
}
Как я могу добавить виды в LinearLayout в ListView? Каждый LinearLayout в разных элементах ListView должен содержать разные представления, поэтому они не могут быть одинаковыми.
Как мои данные будут выглядеть следующим образом:
ListView
Entry1
LinearLayout
SubEntry1
SubEntry2
SubEntry3
Entry2
LinearLayout
SubEntry1
SubEntry2
SubEntry3
Entry3
LinearLayout
SubEntry1
SubEntry2
SubEntry3
Так Entry1..Entry3 являются ListViews, все Подэлементы должны быть TextViews добавлены кода в LinearLayout внутри соответствующей записи ListView
Смотрите ссылку ниже http://stackoverflow.com/questions/4540754/dynamically-add-elements-to-a-listview-android – AnixPasBesoin
Я не хочу добавьте элементы в ListViews, я хочу добавить Views (например TextView) внутри LinearLayout внутри ListView. Я знаю, как добавлять элементы в ListView – Broadwell
Если вы хотите «добавить» TextView внутри своей пользовательской строки ListView, почему бы не добавить его в макет уже с атрибутом android: visibility = «gone». Затем измените его атрибут на «VIEW.VISIBLE» на выбранные строки, которые вы хотите видеть внутри своего пользовательского адаптера. –