【问题标题】:TextView in ListView showing up blankListView 中的 TextView 显示为空白
【发布时间】:2015-05-26 15:10:51
【问题描述】:

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

任何帮助将不胜感激。

【问题讨论】:

  • 你能检查文本颜色是否不是白色的吗?或类似于listview的背景
  • 看起来没问题,也许不是将“null”传递给“inflate”的第二个参数,而是将“parent”传递给它?
  • "schemas.android.com/apk/res/android" 在 schemas.android.com/apk/res/android" 中不是必需的,通过将背景设置为某种颜色来检查 TextView 是否可见,如下所示:android:background=" #555555"
  • 好吧,我搞砸了,将 TextView 的文本设置为黑色,只是为了好玩 - 它实际上使文本显示出来!但是我没有将文本设置为任何其他颜色(如白色,显然不会显示),并且我的整个应用程序(在 theme.xml 中定义)的文本颜色是黑色!那么给了什么?这是一个错误吗?哇,我之前什至没有看过你们的cmets。你怎么看?
  • 您是否在适配器上调用 notifyDataSetChanged?

标签: android listview textview adapter baseadapter


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-31
    • 1970-01-01
    • 1970-01-01
    • 2013-12-10
    • 1970-01-01
    • 2013-01-08
    相关资源
    最近更新 更多