在我的片段中,我有一个列表。我想在列表中显示数据。 这是适配器类:
@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
我的错误是什么,在哪里? 任何建议,将不胜感激。谢谢
答案 0 :(得分: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检查是否有任何内存泄漏。
答案 1 :(得分: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>
现在,应用程序运行正常。
<强>更新强>