我使用自定义适配器显示列表项,该列表项在标题下的每个列表项中具有图像,标题和N个单独的字符串。
如何在com.google.android.flexbox.FlexboxLayout
每个列表项的N个标题中实现N个TextViews ?N个TextViews来自ArrayList<City>
public City (String city, int id) {
this.city = city;
this.id = id;
}
谢谢!
适配器:
public class PersonAdapter extends ArrayAdapter<Person> {
private ArrayList<City> cities;
public PersonAdapter(Context context, ArrayList<Person> persons) {
super(context, 0, persons);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// Hole Daten für diese Position
Person person = getItem(position);
cities = person.getCities();
if (convertView == null) {
convertView = LayoutInflater.from(getContext())
.inflate(R.layout.list_explore_people_row, parent, false);
}
TextView personName = (TextView) convertView.findViewById(R.id.listItemExplorePeopleName);
ImageView profileImg = (ImageView) convertView.findViewById(R.id.listItemExplorePeopleImg);
TextView profileCity = (TextView) convertView.findViewById(R.id.listItemExplorePeopleCityItem);
personName.setText(person.getName());
profileCity.setText(person.getCities().toString()); //This is my best progress currently
profileImg.setImageBitmap(getBitmap(getContext(), person.getProfileImg()));
return convertView;
}
public Bitmap getBitmap(Context ctx, String profileFilename) {
...code of getBitmap for image
}
}
PersonAdapter的XML布局(R.layout.list_explore_people_row)
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/colorWhite"
android:paddingBottom="@dimen/list_row_vertical_margin"
android:paddingLeft="@dimen/list_row_horizontal_margin"
android:paddingRight="@dimen/list_row_horizontal_margin"
android:paddingTop="@dimen/list_row_vertical_margin">
<ImageView
android:id="@+id/listItemExplorePeopleImg"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:layout_marginEnd="8dp"
android:layout_marginStart="0dp"
android:minHeight="100dp"
android:minWidth="100dp"
android:scaleType="centerCrop"
android:src="@drawable/profileimg1" />
<TextView
android:id="@+id/listItemExplorePeopleName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_marginBottom="2dp"
android:layout_toEndOf="@+id/listItemExplorePeopleImg"
android:ellipsize="end"
android:singleLine="true"
android:text="Mona"
android:textAppearance="?android:attr/textAppearanceLarge" />
<com.google.android.flexbox.FlexboxLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/listItemExplorePeopleName"
android:layout_toEndOf="@+id/listItemExplorePeopleImg"
app:flexWrap="wrap"
android:layout_alignParentEnd="true"
android:id="@+id/include">
<TextView
android:id="@+id/listItemExplorePeopleCityItem"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="city one"
android:background="@android:color/holo_green_light"></TextView>
</com.google.android.flexbox.FlexboxLayout>
for(City city : cities) {
TextView textView = new TextView(this);
textView.setText(person.getCities().toString());
convertView.addView(textView);
}
我目前不在我的主PC上,因此我实际上无法对其进行检查,但是大致想法是这样的。要了解更多信息,请执行以下操作:Android动态添加视图
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句