0

在我的片段中,我有一个列表。我想在我的列表中显示数据。这是适配器类:

@Override
    public int getCount() {
        10;
    }

    @Override
    public Object getItem(int position) {
        return null;
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        ViewHolder holder;
        Log.e(TAG, "---");
        if (convertView == null) {
            convertView = myInflater.inflate(R.layout.list_topicslist, null);
            holder      = new ViewHolder();

            holder.tvTitle          = (TextView)        convertView.findViewById(R.id.tvTitle);
            holder.tvExcerpt        = (TextView)        convertView.findViewById(R.id.tvExcerpt);
            holder.tvDate           = (TextView)        convertView.findViewById(R.id.tvDate);
            holder.tvAuthor         = (TextView)        convertView.findViewById(R.id.tvAuthor);
            holder.tvComment_Count  = (TextView)        convertView.findViewById(R.id.tvComment_Count);

            convertView.setTag(holder);
        } else {
            holder = (ViewHolder) convertView.getTag();
        }

        holder.tvTitle.setText("Title");
        holder.tvExcerpt.setText("Content");
        holder.tvAuthor.setText("Hesam");
        holder.tvComment_Count.setText("Votes:");
        holder.tvDate.setText("1/1/2013");

        return convertView;
    }

这是 list_topicslist.xml:

<?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:id="@+id/rlContainer"
        android:background="@color/White" >


    <RelativeLayout
            android:id="@+id/rlHeader"
            android:orientation="vertical"
            android:layout_width="match_parent"
            android:layout_height="25dp" android:layout_alignParentLeft="true"
            android:layout_alignParentTop="true" android:background="@color/bg_list_title">
        <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/title_author"
                android:id="@+id/tvAuthor" android:layout_alignParentRight="true" android:layout_centerVertical="true"
                android:layout_margin="@dimen/sideMargin" android:lines="1" android:maxLines="1"/>
        <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/title_date"
                android:id="@+id/tvDate" android:layout_alignParentLeft="true"
                android:layout_margin="@dimen/sideMargin" android:maxLines="1"
                android:lines="1" android:layout_centerVertical="true"/>
    </RelativeLayout>

    <RelativeLayout
            android:id="@+id/rlBody"
            android:orientation="vertical"
            android:layout_width="match_parent"
            android:layout_height="100dp"
            android:layout_below="@id/rlHeader" android:clickable="false">

        <ImageView
                android:layout_width="100dp"
                android:layout_height="100dp"
                android:id="@+id/ivPostImage" android:layout_alignParentRight="true"
                android:layout_alignParentTop="true" android:layout_margin="@dimen/sideMargin"
                android:src="@drawable/ic_loading_green"/>
        <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/title_title"
                android:id="@+id/tvTitle" android:layout_toLeftOf="@+id/ivPostImage"
                android:layout_alignTop="@+id/ivPostImage" android:layout_margin="@dimen/sideMargin" android:lines="1"
                android:maxLines="3"/>
        <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/title_excerpt"
                android:id="@+id/tvExcerpt" android:layout_toLeftOf="@+id/ivPostImage"
                android:layout_below="@+id/tvTitle" android:layout_margin="@dimen/sideMargin" android:lines="1"
                android:maxLines="6"/>
    </RelativeLayout>

    <RelativeLayout
            android:id="@+id/rlFooter"
            android:orientation="vertical"
            android:layout_width="match_parent"
            android:layout_height="25dp"
            android:layout_below="@id/rlBody"
            android:background="@color/bg_list_footer">
        <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/title_comment_count"
                android:id="@+id/tvComment_Count" android:layout_alignParentRight="true"
                android:layout_alignParentTop="true" android:layout_margin="@dimen/sideMargin"
                android:layout_centerVertical="true" android:lines="1" android:maxLines="1"/>
    </RelativeLayout>

</RelativeLayout>

这是片段的 xml:

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools" >

    <ListView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/lvTopicsList"
            android:scrollbars="none"
            android:scrollingCache="false"
            tools:listitem="@layout/list_topicslist" />
</RelativeLayout>

当我运行应用程序时,我看不到我的列表,但 Log 显示 getView() 已被调用。

02-28 21:09:10.195: E/*** TopicAdapter ***(16184): ---
02-28 21:09:10.220: D/dalvikvm(16184): GC_CONCURRENT freed 2720K, 33% free 11321K/16775K, paused 2ms+1ms
02-28 21:09:10.235: E/*** TopicAdapter ***(16184): ---
02-28 21:09:10.235: E/*** TopicAdapter ***(16184): ---
02-28 21:09:10.235: E/*** TopicAdapter ***(16184): ---
02-28 21:09:10.240: E/*** TopicAdapter ***(16184): ---
02-28 21:09:10.240: E/*** TopicAdapter ***(16184): ---
02-28 21:09:10.250: E/*** TopicAdapter ***(16184): ---
02-28 21:09:10.275: E/*** TopicAdapter ***(16184): ---
02-28 21:09:10.295: D/dalvikvm(16184): GC_CONCURRENT freed 262K, 31% free 11693K/16775K, paused 2ms+2ms

我的错误是什么,在哪里?任何建议,将不胜感激。谢谢

4

2 回答 2

0
@Override
 public Object getItem(int position) {
 return position;// change null to position
 }

看看这里的视频。http://www.youtube.com/watch?v=wDBM6wVEO70。要清楚地了解内存管理,请查看此链接http://www.youtube.com/watch?v=_CruQY55HOk

看看类似的问题How to solve GC_concurrent freed? . 看起来你的堆已经满了。

上面的链接应该可以帮助您找到摆脱麻烦的方法。使用 MAT Analyzer 检查任何内存泄漏。

于 2013-02-28T13:07:58.313 回答
0

问题是因为 lint 的愚蠢建议要求我将 layout_width 设置为 0dp 而不是 match-parent。我在 activity_main.xml 中将我的 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">

    <fragment
            android:name="com.kamalan.fragments.Fragment_TopicsList"
            android:id="@+id/fragment"
            android:layout_width="match_parent"   <==================
            android:layout_height="match_parent"
            android:layout_gravity="left|center_vertical" />
</LinearLayout>

现在,应用程序运行良好。


更新

我发现这篇文章很有用:为什么 0dp 被认为是一种性能增强?

于 2013-03-01T07:39:53.347 回答