0
ExpandableListView幾乎爲空。我真的不知道什麼是浪費了太多的記憶。 大量滾動(約60次上下)後,應用程序停止響應。我做了一些調查,發現只有在targetSdkVersions 8到13時纔會出現此錯誤。對於版本14和更高版本,一切正常。 我的應用程序使用ViewPager的android支持庫v4和ViewPagerIndicator。 這是一個討厭的錯誤,或者是我的代碼有問題嗎?Viewpager片段中ExpandableListView的上下滾動導致內存不足錯誤
package com.test.test;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.os.Parcelable;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseExpandableListAdapter;
import android.widget.ExpandableListAdapter;
import android.widget.ExpandableListView;
import com.viewpagerindicator.TabPageIndicator;
public class MainActivity extends Activity{
public ExpandableListAdapter mAdapter;
final String[] page_titles = new String[]{"page1","page2"};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_activity);
//Instantiating the adapter
myAdapter mAdapter = new myAdapter(this);
//instantiate the Views
ViewPager mPager = (ViewPager)findViewById(R.id.pager);
mPager.setAdapter(mAdapter);
TabPageIndicator mIndicator = (TabPageIndicator)findViewById(R.id.indicator);
mIndicator.setViewPager(mPager);
}
private class myAdapter extends PagerAdapter{
Context context;
public myAdapter(Context c){
this.context = c;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return page_titles.length;
}
@Override
public boolean isViewFromObject(View v, Object o) {
// TODO Auto-generated method stub
return v.equals(o);
}
public CharSequence getPageTitle(int position) {
return page_titles[position];
}
public Object instantiateItem(View pager, int position) {
final LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View v = inflater.inflate(R.layout.expander, null, false);
ExpandableListView elv1 = (ExpandableListView) v.findViewById(R.id.elv1);
MainActivity.this.mAdapter = new BaseExpandableListAdapter() {
@Override
public Object getChild(int groupPosition, int childPosition) {
return null;
}
@Override
public long getChildId(int groupPosition, int childPosition) {
return 0;
}
@Override
public int getChildrenCount(int groupPosition) {
return 1;
}
@Override
public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
View v = inflater.inflate(R.layout.childview, null, false);
return v;
}
@Override
public Object getGroup(int groupPosition) {
return null;
}
@Override
public int getGroupCount() {
return 20;
}
@Override
public long getGroupId(int groupPosition) {
return 0;
}
@Override
public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {
View v = inflater.inflate(R.layout.twolinelistitem, parent, false);
return v;
}
@Override
public boolean hasStableIds() {
return false;
}
@Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
return false;
}
};
elv1.setAdapter(MainActivity.this.mAdapter);
((ViewPager) pager).addView(v, 0);
return v;
}
@Override
public void destroyItem(View pager, int position, Object view) {
((ViewPager) pager).removeView((View) view);
}
@Override
public void finishUpdate(View view) {
}
@Override
public void restoreState(Parcelable p, ClassLoader c) {
}
@Override
public Parcelable saveState() {
return null;
}
@Override
public void startUpdate(View view) {
}
}
}
我用了你「如果尋呼機爲null僅膨脹」的解決方案。它像一個魅力。非常感謝。如果我的聲望更高,我會投票:) – Gadja