我正在使用我在我的应用程序中使用的模式来填充ListView,但这次ListView的每个单元格中的TextView显示为空白。有正确数量的单元格(我可以通过分隔符看到),但没有文本。请参阅我的布局XML和我的适配器的代码:
列表项XML,edit_list_item:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:minHeight="?android:attr/listPreferredItemHeight"
android:gravity="center_vertical"
android:focusable="true"
android:id="@+id/list_item_textview"/>
<CheckBox
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:id="@+id/list_item_checkbox"
android:focusable="false"
android:paddingRight="@dimen/activity_horizontal_margin"
android:layout_alignParentRight="true"
/>
</RelativeLayout>
我的适配器类:
public class EditGroupObjectListAdapter extends BaseAdapter {
public static String LOG_TAG = EditGroupObjectListAdapter.class.getSimpleName();
private LayoutInflater mInflater;
private Context context;
private ArrayList<EditBuddy> allEditBuddies;
private List<String> buddiesInGroup;
public EditGrouphObjectListAdapter(Context context, List<String> buddiesInGroup, List<Buddy> allBuddies) {
this.context = context;
mInflater = LayoutInflater.from(context);
this.allEditBuddies = new ArrayList<>();
this.buddiesInGroup = buddiesInGroup;
for (Buddy buddy : allBuddies) {
EditBuddy editBuddy = new EditBuddy(buddy);
if (this.buddiesInGroup.contains(editBuddy.get_buddy_username())) {
editBuddy.setIsInBunch(true);
editBuddy.setIsSelected(true);
}
allEditBuddies.add(editBuddy);
}
}
public ArrayList<EditBuddy> getAllBuddies() {
return this.allEditBuddies;
}
@Override
public int getCount() {
return allEditBuddies.size();
}
@Override
public Object getItem(int position) {
return allEditBuddies.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
if (mInflater == null)
mInflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
if (convertView == null)
convertView = mInflater.inflate(R.layout.edit_list_item, null);
// Another way of instantiating convertView
// LayoutInflater inflater = (LayoutInflater) this.context
// .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
// convertView = inflater.inflate(R.layout.edit_bunch_list_item, parent, false);
EditBuddy editBuddy = (EditBuddy)getItem(position);
Log.d(LOG_TAG, "Name: " + editBuddy.get_buddy_full_name());
Log.d(LOG_TAG, "UserName: " + editBuddy.get_buddy_username());
TextView buddyFullNameTextview = (TextView)convertView.findViewById(R.id.list_item_textview);
buddyFullNameTextview.setText(editBuddy.get_buddy_full_name());
// Checkbox code omitted
return convertView;
}
}
在设置TextView文本之前的print语句确实打印了正确的数据。我在列表中有两个好友,我可以看到它们的空格但没有实际文本。
非常感谢任何帮助。
答案 0 :(得分:0)
嗯,在这种情况下,文本颜色似乎与背景相同,但没有理由这样做。活动继承AppTheme,其TextColor设置为黑色。 ListView的字体也比应用程序中的其他ListView小 - 所以我必须查看断开连接的位置,然后更新答案。