آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
مشکل عدم دسترسی خریداران پیشین به برخی آموزش ها برطرف شد
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

پیغام خطای OutOfMemoryError در لیست ویو موجود در فرگمنت

masoudm732  8 سال پیش  8 سال پیش
0 0

با سلام و خسته نباشید .

یک برنامه خیلی کوچولو نوشتم که هیچ مشکلی در اتصال به پایگاه داده و یا نمایش نداره و به خوبی کد ها رو اجرا میکنه فقط مشکلی که وجود داره و منم کلافه کرده همین پیغام خطای هست که میده ، در اینترنت گشتم به جواب های هم رسیدم ولی مشکل اینجاست که اگر بخواهم از این روش ها استفاده کنم متن های موجود در لیست ویو جابه جا میشند :| ممنون میشم راهنمایی کنید مشکل از کجاست . بنده  این دستور هم اضافه کردم ولی همین مشکلی که گفتم پیش میاد(یعنی فقط متن نمایش داده شده در هر سطر از لیست ویو جابه جا میشه و ترتیب نمایش به هم میریزه :| )

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)
 برای این سوال پاسخی وجود ندارد.

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .