ListView适配器工作行已创建但是为空

时间:2016-08-30 19:45:00

标签: android listview android-6.0-marshmallow

花时间阅读帖子,但没有找到与遇到的问题相关的任何内容。

有一个基于Android Marshmallow的应用程序,它启动一个包含listview的布局的活动。编写了一个自定义适配器,它确实调用了getView方法,并确认数据存在。适配器的getView是:

    ArrayList<HashMap<String,IncidentData>> localList;
            mLayoutInflator = (LayoutInflater)mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            if (convertView == null) {
                convertView = mLayoutInflator.inflate(R.layout.list_item_base_incident, parent,false);
            }
            mDateTimeText = (TextView)convertView.findViewById(R.id.date_time_text);
            mAddressText = (TextView)convertView.findViewById(R.id.address_text);
            mDistanceToText = (TextView)convertView.findViewById(R.id.distance_to_text);
            mShortDescText = (TextView)convertView.findViewById(R.id.short_desc_text);
            mGangRelatedText = (TextView)convertView.findViewById(R.id.gang_related_text);
            //pop data

            HashMap<String,IncidentData>incident2 = mID.get(position);
            IncidentData id = incident2.get(incident2.keySet().iterator().next());

            mDateTimeText.setText(id.getDateTime());
            mAddressText.setText(id.getAddress());
            mDistanceToText.setText(String.valueOf(id.getDistance()));
            mShortDescText.setText(id.getShortDesc());
            mGangRelatedText.setText(id.getGangRelated());
            Log.d(LOG_TAG,"SHORT DESC - "+ id.getShortDesc());
            return convertView;
}

日志消息显示getView正确处理hashmap中的每个条目。问题是数据没有出现在列表视图中,但是列表视图确实显示了数据量的正确空白条目数。 屏幕布局如下: incident_layout_base.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <ListView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/incident_list_view"/>
</LinearLayout>

并且listview内容的布局是:

   <?xml version="1.0" encoding="utf-8"?>
    <android.support.v7.widget.GridLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:columnCount="1">

        <TextView
            android:id="@+id/date_time_text"
            app:layout_columnWeight="1"
            tools:text="08201624@2350"/>
        <TextView
            android:id="@+id/address_text"
            app:layout_columnWeight="1"
            tools:text="SAN FERNANDO BLVD AND ALAMEDA AVE"/>
        <TextView
            android:id="@+id/distance_to_text"
            app:layout_columnWeight="1"
            tools:text="1"/>
        <TextView
            android:id="@+id/short_desc_text"
            app:layout_columnWeight="1"
            tools:text="Murder"/>
        <TextView
            android:id="@+id/gang_related_text"
            app:layout_columnWeight="1"
            tools:text="gang related"/>
 </android.support.v7.widget.GridLayout>

应用程序确实启动了处理包含listView的显示的意图。 intent调用setContentView,获取数据,实例化自定义适配器并在其上调用setAdapter。

赞赏的想法

1 个答案:

答案 0 :(得分:0)

发现没有数据显示的问题。背景和文本颜色默认为白色。所以,虽然数据存在,但是你却看不到它。