PDA

View Full Version : بسته شدن و يا كرش شدن برنامه موقع اسكرول ListView



msdsbi
یک شنبه 07 آبان 1391, 01:50 صبح
سلام دوستان
من برنامه اي در سي شارپ براي آندرويد مي نويسم كه يه سري اطلاعات رو در ArrayAdapter مي خونه و محتويات اونو در ليست ويو نشون مي ده .
البته اين كدي كه من در پايين مي زارم بدرستي كار مي كنه و فقط مشكل اون اينه كه در خروجي ليست ويوي من كه در يك اكتيوتي فعال هستش موقع اسكرول پياپي اين ليست برنامه ام بسته مي شه

خواهشا دوستاني كه در اين مورد كار كردن منو از راهنمايي گرمشون دريغ نكن :

محتويات MarahelAdapter

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using Android.App;
using Android.Content;
using Android.OS;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using Android.Graphics;

namespace TestList
{
class MarahelAdapter:BaseAdapter<Marahel>
{
Activity context;
public List<Marahel> listSer;
public MarahelAdapter(Activity context, List<Marahel> lLists)
: base()
{
this.context = context;
this.listSer = lLists;
}

public override int Count {
get { return this.listSer.Count; }
}

public override Marahel this[int position]
{
get { return this.listSer[position]; }
}
class ViewHolder : Java.Lang.Object
{
public TextView textTop { get; set; }
public TextView textBottom { get; set; }
public TextView textAmade { get; set; }
public ImageView imageItem { get; set; }

}

public override View GetView(int position, View convertView, ViewGroup parent)
{
ViewHolder holder;
Typeface face = Typeface.CreateFromAsset(context.Assets, "fonts/BYEKAN.TTF");
var item = this.listSer[position];
if (convertView == null || !(convertView is LinearLayout))
{

convertView = context.LayoutInflater.Inflate(Resource.Layout.Asl i,null);
holder = new ViewHolder();
holder.textTop = convertView.FindViewById(Resource.Id.textView1) as TextView;
holder.textBottom = convertView.FindViewById(Resource.Id.textView3) as TextView;
holder.textAmade = convertView.FindViewById(Resource.Id.textView2) as TextView;
holder.imageItem = convertView.FindViewById(Resource.Id.imageView2) as ImageView;
convertView.Tag = holder;
}
else
{
holder = (ViewHolder)convertView.Tag;
}
holder.textTop.SetText(item.MTitle, TextView.BufferType.Normal);
holder.textBottom.SetText(item.MCount, TextView.BufferType.Normal);
holder.textAmade.SetText(item.TCountAmadeh, TextView.BufferType.Normal);
holder.textTop.SetTextColor(Android.Graphics.Color .Black);


if (item.ICountAmadeh != 0)
{
holder.textAmade.SetTextColor(Android.Graphics.Col or.DarkGreen);
holder.textBottom.SetTextColor(Android.Graphics.Co lor.DarkGreen);
}
else
{
holder.textAmade.SetTextColor(Android.Graphics.Col or.Black);
holder.textBottom.SetTextColor(Android.Graphics.Co lor.Black);

}
holder.imageItem.SetImageResource(item.Image);
if (isOdd(position))
{
convertView.SetBackgroundResource(Resource.Drawabl e.CustomSelector);

}
else
{
convertView.SetBackgroundResource(Resource.Drawabl e.CustomSelector2);
}
holder.textAmade.SetTypeface(face, TypefaceStyle.Normal);
holder.textBottom.SetTypeface(face, TypefaceStyle.Normal);
holder.textTop.SetTypeface(face, TypefaceStyle.Bold);

return convertView;
}

public override long GetItemId (int position)
{
return position;
}
public bool isOdd(int num)
{
int i = 0;
bool odd = false;

while (i != num)
{
odd = !odd;
i = i + 1;
}

return odd;
}
}
}

محتويات كلاس Marahel :
using System;

namespace TestList
{
class Marahel
{
MyData md = new MyData();
public Marahel()
{ }
public string MTitle { get; set; }
public int Image
{
get;
set;
}
public int Rowid { get; set; }
public int MCount{ get; set; }
public int ICountAmadeh{ get; set; }
public int TCountAmadeh{ get; set; }
}

محتويات لايه اي كه نمونه ليست ويو از اون گرفته مي شه Resource.Layout.Asli
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:minWidth="25px"
android:minHeight="25px"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/relativeLayout1">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageView2"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:src="@drawable/B1"
android:scaleType="fitCenter" />
<RelativeLayout
android:minWidth="25px"
android:minHeight="25px"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_toLeftOf="@id/imageView2"
android:id="@+id/relativeLayout2">
<LinearLayout
android:orientation="vertical"
android:minWidth="25px"
android:minHeight="25px"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/linearLayout1">
<TextView
android:text="مراحل"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/textView1"
android:layout_gravity="right"
android:textSize="10pt"
android:textStyle="bold"
android:layout_marginRight="5px"
android:layout_marginLeft="5px" />
<TextView
android:text="Text"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/linearLayout1"
android:id="@+id/textView2"
android:layout_gravity="left"
android:textSize="8pt"
android:gravity="left"
android:layout_marginLeft="5px"
android:layout_marginRight="5px" />
<TextView
android:text="Text"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/linearLayout1"
android:id="@+id/textView3"
android:layout_gravity="left"
android:textSize="8pt"
android:gravity="left"
android:layout_marginLeft="5px"
android:layout_marginRight="5px" />
</LinearLayout>
</RelativeLayout>
</RelativeLayout>

محتويات كلاسي كه در اون MarahelAdapter صدا زده مي شه و مقدار دهي مي شه و در اين قسمت نمايش مي ده
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:minWidth="25px"
android:minHeight="25px"
android:background="@color/white">
<TableLayout
android:id="@+id/widget46"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TableRow
android:id="@+id/widget47"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:background="@drawable/BackHeader">
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=""
android:background="@drawable/Addbtn" />
<View
android:layout_width="1dip"
android:background="#7FD2FF"
android:layout_height="fill_parent"
android:layout_margin="5px"
android:id="@+id/view1" />
<Button
android:id="@+id/btnFlashCardInsert"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/FlashCardbtn"
android:textColor="@color/black" />
</TableRow>
</TableLayout>
<ListView
android:minWidth="25px"
android:minHeight="25px"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/listView1"
android:cacheColorHint="#00000000"
android:listSelector="#00000000"
android:alwaysDrawnWithCache="false"
android:addStatesFromChildren="true"
android:fadeScrollbars="true"
android:fastScrollEnabled="true"
android:hapticFeedbackEnabled="true"
android:isScrollContainer="true"
android:scrollbars="vertical"
android:scrollingCache="true" />
</LinearLayout>

خواهشا دوستان كمك كنن و يا اطلاعات ديگه اي بخواين حتما مي زارم