پیغام خطای OutOfMemoryError در لیست ویو موجود در فرگمنت
با سلام و خسته نباشید .
یک برنامه خیلی کوچولو نوشتم که هیچ مشکلی در اتصال به پایگاه داده و یا نمایش نداره و به خوبی کد ها رو اجرا میکنه فقط مشکلی که وجود داره و منم کلافه کرده همین پیغام خطای هست که میده ، در اینترنت گشتم به جواب های هم رسیدم ولی مشکل اینجاست که اگر بخواهم از این روش ها استفاده کنم متن های موجود در لیست ویو جابه جا میشند :| ممنون میشم راهنمایی کنید مشکل از کجاست . بنده این دستور هم اضافه کردم ولی همین مشکلی که گفتم پیش میاد(یعنی فقط متن نمایش داده شده در هر سطر از لیست ویو جابه جا میشه و ترتیب نمایش به هم میریزه :| )
if (convertView==null) {
این دستور منظورم بود که اضافه کردم و دیگه خطای OutOfMemoryError بر طرف شد !! ولی مشکلی که در بالا عرض کردم پیش امد :| و { این دستور if هم دقیقا قبل از این دستور گذاشته بودم ولی جواب نداد ...
return (convertView);
- public class Fragment1 extends Fragment{
- private ViewGroup view;
- static Context mycontext;
- private database db;
- private ListView listView;
- private boolean flage=false;
- private int color[][];
- private int sum;
- int count1=0;
- private ImageView imageView = null;
- private LayoutInflater in;
- private LinearLayout slid = null;
- private TextView txt = null;
- public static Fragment instans(Context context){
- Fragment fragment=new Fragment1();
- mycontext=context;
- return fragment;
- }
- public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
- view=(ViewGroup) inflater.inflate(R.layout.fragment1, container, false);
- return (view);
- }
- public void onActivityCreated(Bundle savedInstanceState) {
- super.onActivityCreated(savedInstanceState);
- db=new database(mycontext);
- db.useable();
- listView=(ListView) view.findViewById(R.id.listView1);
- Fill();
- listView.setAdapter(new AA(getActivity()));
- listView.setOnItemClickListener(new OnItemClickListener() {
- public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
- Intent i=new Intent(getActivity(),Matn.class);
- i.putExtra("titr",position);
- startActivity(i);
- }
- });
- }
- class AA extends ArrayAdapter<String>{
- public AA(Context context) {
- super(context,R.layout.row,MainActivity.Name);
- }
- public View getView(final int position, View convertView, ViewGroup parent) {
- in =(LayoutInflater) getLayoutInflater(getArguments());
- convertView=in.inflate(R.layout.row, parent, false);
- slid=(LinearLayout) convertView.findViewById(R.id.row_line);
- txt=(TextView) convertView.findViewById(R.id.txtmatn);
- imageView=(ImageView) convertView.findViewById(R.id.imgfavrow);
- slid.setBackgroundColor(Color.argb(250,color[0][position], color[1][position],color[2][position]));
- txt.setText(MainActivity.Name[position]);
- if(MainActivity.Fav[position]==1)
- imageView.setImageResource(R.drawable.ic_favorite_black);
- else
- imageView.setImageResource(R.drawable.ic_favorite_border_black);
- imageView.setOnClickListener(new OnClickListener() {
- public void onClick(View v) {
- db.open();
- flage=false;
- int a=MainActivity.Fav[position];
- if(a==0){
- imageView.setImageResource(R.drawable.ic_favorite_black);
- MainActivity.Fav[position]=1;
- db.favupdate(position+1,1);
- }
- else{
- imageView.setImageResource(R.drawable.ic_favorite_border_black);
- MainActivity.Fav[position]=0;
- db.favupdate(position+1,0);
- }
- if(flage==false){
- db.close();
- flage=true;
- }
- }
- });
- return (convertView);
- }
- }
- private void Fill(){
- flage=false;
- db.open();
- Random rand=new Random();
- sum=db.counthealth();
- MainActivity.Fav=new int[sum];
- MainActivity.Name=new String[sum];
- color=new int [3][sum];
- for(int i=0;i<sum;i++)
- {
- MainActivity.Name[i]=db.displyhealth(i,1);
- MainActivity.Fav[i]=db.favhealth(i);
- for(int j=0;j<3;j++)
- color[j][i]=rand.nextInt(176)+80;
- }
- if(flage==false){
- db.close();
- flage=true;
- }
- }
- }
اینم پیغام خطا برنامه زمانی که لیست ویو موجود رو چند بار پشت سر هم بالا و پاین میکنم
و یک نکته اینکه این پیغام خطا فقط در زمانی که برنامه خودم رو در نرم افزار YouWave اجرا میکنم رخ میدهد !!!
- 05-05 06:50:54.817: E/dalvikvm-heap(1722): Out of memory on a 28-byte allocation.
- FATAL EXCEPTION: main
- java.lang.OutOfMemoryError
- at java.lang.reflect.Constructor.constructNative(Native Method)
- at java.lang.reflect.Constructor.newInstance(Constructor.java:417)
- at android.view.LayoutInflater.createView(LayoutInflater.java:586)
- at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
- at android.view.LayoutInflater.onCreateView(LayoutInflater.java:653)
- at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:678)
- at android.view.LayoutInflater.rInflate(LayoutInflater.java:739)
- at android.view.LayoutInflater.rInflate(LayoutInflater.java:742)
- at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
- at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
- at com.deltadevloper.health.Fragment1$AA.getView(Fragment1.java:70)
- at android.widget.AbsListView.obtainView(AbsListView.java:2012)
- at android.widget.ListView.makeAndAddView(ListView.java:1772)
- at android.widget.ListView.fillDown(ListView.java:672)
- at android.widget.ListView.correctTooLow(ListView.java:1448)
- at android.widget.ListView.fillGap(ListView.java:646)
- at android.widget.AbsListView.trackMotionScroll(AbsListView.java:4546)
- at android.widget.AbsListView.scrollIfNeeded(AbsListView.java:2852)
- at android.widget.AbsListView.onTouchEvent(AbsListView.java:3106)
- at android.view.View.dispatchTouchEvent(View.java:5541)
- at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1951)
- at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1712)
- at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1957)
- at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1726)
- at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1957)
- at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1726)
- at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1957)
- at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1726)
- at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1957)
- at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1726)
- at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1957)
- at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1726)
- at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1957)
- at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1726)
- at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1957)
- at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1726)
- at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1957)
- at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1726)
- at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1957)
- at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1726)
- at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1912)
- at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1371)
- at android.app.Activity.dispatchTouchEvent(Activity.java:2364)
- at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1860)
- at android.view.View.dispatchPointerEvent(View.java:5721)
- at android.view.ViewRootImpl.deliverPointerEvent(ViewRootImpl.java:2890)
- at android.view.ViewRootImpl.handleMessage(ViewRootImpl.java:2466)
- at android.view.ViewRootImpl.processInputEvents(ViewRootImpl.java:845)
- at android.view.ViewRootImpl.handleMessage(ViewRootImpl.java:2475)
- at android.os.Handler.dispatchMessage(Handler.java:99)
- at android.os.Looper.loop(Looper.java:137)
- at android.app.ActivityThread.main(ActivityThread.java:4424)
- at java.lang.reflect.Method.invokeNative(Native Method)
- at java.lang.reflect.Method.invoke(Method.java:511)
- at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
- at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
- at dalvik.system.NativeStart.main(Native Method)
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .