meysam jahedi
پنج شنبه 15 آبان 1393, 18:33 عصر
سلام
public int[] insertSort(int[]A){
int f , j ,temp;
for (f =1 ; f <A.length ; f++)
{
temp = A[f];
for (j = f ; j>0 && A[j-1]>temp ; j--)
A[j]=A[j-1];
A[j]=temp;
}
return A;
}
public void refresh(){
mydb=mydata.getReadableDatabase();
Cursor recdaryafti = mydb.rawQuery("select * from tbl group by id ", null);
KOD_SORT=new int[recdaryafti.getCount()];
KOD_FERST=new int[recdaryafti.getCount()];
A=new int[recdaryafti.getCount()];
if(recdaryafti.moveToFirst()){
do{
KOD_SORT[i] = Integer.parseInt(recdaryafti.getString(1));
KOD_FERST[i] = Integer.parseInt(recdaryafti.getString(1));
i++;
}
while(recdaryafti.moveToNext());
}
recdaryafti.close();
mydb.close();
setListAdapter(new MyAdapter(this,insertSort(KOD_SORT),KOD_FERST));
}
insertSort اعداد رو مرتب میکنه ،
دوتا اکتیویتی جدا دارم یکیش دستورات بالا توش هست و لیست ویو رو داره (Activity1)و
یک اکتیویتی دیگه دارم که با یه EditText و یه Button اعداد نامرتب رو به دیتابیس میفرستم و یک button دیگه توش هست که اکتیویتی اول رو باز میکنه (Activity2)،
refresh رو درون onCreate اولی (Activity1)گذاشتم و وقتی اکتیویتی برای اولین بار اجرا میشه insertSort به درستی کار میکنه و بوسیله setListAdapter دو ستون مرتب و نامرتب در لیست ویو نشون داده میشه (یعنی فقط برا اولین بار که وارد برنامه میشم و دکمه مرتب سازی ازActivity2 رو میزنم Activity1 باز میشه و اعدادی که تو دیتابیس هستش رو میاره و دو ستون مرتب و نامرتب نشون میده و همه چی خوبه )
مشکلم اینجاس:
اما وقتی وارد برنامه شدم و تو Activity2 کار insert رو انجام دادم و از تکست ویو عدد جدید فرستادم به دیتابیس و پشت سرش دکمه مرتب سازی رو میزنم که Activity1 باز بشه و نتیجه کار نشون داده بشه نمیشه و لیست مرتب نمیشه و هر دو ستون نامرتب و انگار تابع مرتب سازی کار نمیکنه ! (اما باز برنامه ببندم و دوباره وارد برنامه بشم و مستقیما برم سراغ دکمه مرتب سازی باز همه اعدا رو میاره و هردو ستون مرتب و نامرتب میاد و درست عمل میکنه ) !!!:گیج::گیج::گیج:
public int[] insertSort(int[]A){
int f , j ,temp;
for (f =1 ; f <A.length ; f++)
{
temp = A[f];
for (j = f ; j>0 && A[j-1]>temp ; j--)
A[j]=A[j-1];
A[j]=temp;
}
return A;
}
public void refresh(){
mydb=mydata.getReadableDatabase();
Cursor recdaryafti = mydb.rawQuery("select * from tbl group by id ", null);
KOD_SORT=new int[recdaryafti.getCount()];
KOD_FERST=new int[recdaryafti.getCount()];
A=new int[recdaryafti.getCount()];
if(recdaryafti.moveToFirst()){
do{
KOD_SORT[i] = Integer.parseInt(recdaryafti.getString(1));
KOD_FERST[i] = Integer.parseInt(recdaryafti.getString(1));
i++;
}
while(recdaryafti.moveToNext());
}
recdaryafti.close();
mydb.close();
setListAdapter(new MyAdapter(this,insertSort(KOD_SORT),KOD_FERST));
}
insertSort اعداد رو مرتب میکنه ،
دوتا اکتیویتی جدا دارم یکیش دستورات بالا توش هست و لیست ویو رو داره (Activity1)و
یک اکتیویتی دیگه دارم که با یه EditText و یه Button اعداد نامرتب رو به دیتابیس میفرستم و یک button دیگه توش هست که اکتیویتی اول رو باز میکنه (Activity2)،
refresh رو درون onCreate اولی (Activity1)گذاشتم و وقتی اکتیویتی برای اولین بار اجرا میشه insertSort به درستی کار میکنه و بوسیله setListAdapter دو ستون مرتب و نامرتب در لیست ویو نشون داده میشه (یعنی فقط برا اولین بار که وارد برنامه میشم و دکمه مرتب سازی ازActivity2 رو میزنم Activity1 باز میشه و اعدادی که تو دیتابیس هستش رو میاره و دو ستون مرتب و نامرتب نشون میده و همه چی خوبه )
مشکلم اینجاس:
اما وقتی وارد برنامه شدم و تو Activity2 کار insert رو انجام دادم و از تکست ویو عدد جدید فرستادم به دیتابیس و پشت سرش دکمه مرتب سازی رو میزنم که Activity1 باز بشه و نتیجه کار نشون داده بشه نمیشه و لیست مرتب نمیشه و هر دو ستون نامرتب و انگار تابع مرتب سازی کار نمیکنه ! (اما باز برنامه ببندم و دوباره وارد برنامه بشم و مستقیما برم سراغ دکمه مرتب سازی باز همه اعدا رو میاره و هردو ستون مرتب و نامرتب میاد و درست عمل میکنه ) !!!:گیج::گیج::گیج: