ListView中的TextView显示空白

时间:2015-05-26 15:10:51

标签: android listview textview adapter baseadapter

我正在使用我在我的应用程序中使用的模式来填充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语句确实打印了正确的数据。我在列表中有两个好友,我可以看到它们的空格但没有实际文本。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

嗯,在这种情况下,文本颜色似乎与背景相同,但没有理由这样做。活动继承AppTheme,其TextColor设置为黑色。 ListView的字体也比应用程序中的其他ListView小 - 所以我必须查看断开连接的位置,然后更新答案。