PDA

View Full Version : نمایش در ListView



leila71
شنبه 12 دی 1394, 13:57 عصر
سلام
DBAdapter.java

public Cursor getContact1(String date_fr, String date_to) throws SQLException
{
String[] cols = { KEY_INVOICE_NO,
KEY_TRAN_DATE, KEY_CUST_CODE,KEY_CUST_DESCR,KEY_PRICE,KEY_COGS };

Cursor mCursor =db.rawQuery("select * from report_1 where tran_date >= "+ date_fr + " and tran_date <=" + date_to, null);
if (mCursor != null) {
mCursor.moveToFirst();
}
return mCursor;

}

show_report.java
//---Select a contact---
search.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
db.open();
Cursor c = db.getContact1(
(et1.getText().toString()),(et2.getText().toString ()));
if (c.moveToFirst())
DisplayContact(c);
else
Toast.makeText(getBaseContext(), "No contact found",
Toast.LENGTH_LONG).show();
db.close();
}
private void DisplayContact(Cursor c) {
// TODO Auto-generated method stub
Toast.makeText(getBaseContext(),"invoice_no: " + c.getString(0) +
"\n" +"tran_date: " + c.getString(1) + "\n" +
"cust_code: " + c.getString(2)+
"\n" +"cust_descr: " + c.getString(3) + "\n" +
"price: " + c.getString(4)+
"\n" +"cogs: " + c.getString(5) + "\n" ,
Toast.LENGTH_LONG).show();
mAdapter = new SimpleCursorAdapter(getBaseContext(),
R.layout.show_report,
null,
new String[] { db.KEY_INVOICE_NO,db.KEY_TRAN_DATE},
new int[] { R.id.date_fr , R.id.date_to}, 0);

nameList.setAdapter(mAdapter);
}
}) ;

}
این کد مربوط به قسمت جستجو می باشد
جستجو را انجام داده و نمایش میدهد ولی من می خواهم که نتیجه جستجو در list view نمایش داده شود
خواهشا راهنمایی کنید
مرسی

msroid
شنبه 12 دی 1394, 14:21 عصر
سلام

برای اینکه بتونید توی ListView نمایش بدین باید خروجی Cursor رو در قالب داده ای در بیارین که میدین به Adapter و بعدش Adapter رو به ListView بدین. مثلا اگه دارین یه آرایه رشته ای به Adapter به عنوان داده ورودی میدین باید خروجی جستجو رو در قالب یه آرایه رشته ای دربیارین و بعد به Adapter بدین.

leila71
شنبه 12 دی 1394, 21:54 عصر
سلام

برای اینکه بتونید توی ListView نمایش بدین باید خروجی Cursor رو در قالب داده ای در بیارین که میدین به Adapter و بعدش Adapter رو به ListView بدین. مثلا اگه دارین یه آرایه رشته ای به Adapter به عنوان داده ورودی میدین باید خروجی جستجو رو در قالب یه آرایه رشته ای دربیارین و بعد به Adapter بدین.

همین دیگه نمی تونم خروجی جستجو رو در قالب آرایه دربیارم میشه یه کم بیشتر راهنمایی کنید

msroid
شنبه 12 دی 1394, 22:18 عصر
همین دیگه نمی تونم خروجی جستجو رو در قالب آرایه دربیارم میشه یه کم بیشتر راهنمایی کنید

خب من نمیدونم دقیقا چه اطلاعاتی درون Cursor قرار میگیره. شما اول بفرمایین خروجی این Cursor چیه...؟؟
در هر بار جستجو فقط یک رشته برمیگردونه یا نه چندین رشته...؟؟
مثلا کاربر مینویسه "کتاب" و سرچ رو میزنه حالا جستجوی شما جوری نوشته شده که همه فیلدهایی که واژه "کتاب" در اون ها هست رو برمیگردونه یا نه جوری نوشته شده که زمانی نتیجه رو برگردونه که دقیقا عبارت درون دیتابیس وجود داشته باشه یعنی فقط یک نتیجه...؟؟

leila71
شنبه 12 دی 1394, 23:43 عصر
خب من نمیدونم دقیقا چه اطلاعاتی درون Cursor قرار میگیره. شما اول بفرمایین خروجی این Cursor چیه...؟؟
در هر بار جستجو فقط یک رشته برمیگردونه یا نه چندین رشته...؟؟
مثلا کاربر مینویسه "کتاب" و سرچ رو میزنه حالا جستجوی شما جوری نوشته شده که همه فیلدهایی که واژه "کتاب" در اون ها هست رو برمیگردونه یا نه جوری نوشته شده که زمانی نتیجه رو برگردونه که دقیقا عبارت درون دیتابیس وجود داشته باشه یعنی فقط یک نتیجه...؟؟
از اینکه کمک میکنید تشکر
public Cursor getContact1(String date_fr, String date_to) throws SQLException
{

Cursor mCursor =db.rawQuery("select * from report_1 where tran_date >= "+ date_fr + " and tran_date <=" + date_to, null);
if (mCursor != null) {
mCursor.moveToFirst();
}
return mCursor;
}
این کد مربوط به کرسر هست که بر اساس تاریخ جستجو رو انجام میده و چندین مقدار رو برمی گردونه ،میخوام که نتیجه جستجو رو در لیست ویو ببینم

msroid
یک شنبه 13 دی 1394, 11:31 صبح
از اینکه کمک میکنید تشکر
public Cursor getContact1(String date_fr, String date_to) throws SQLException
{

Cursor mCursor =db.rawQuery("select * from report_1 where tran_date >= "+ date_fr + " and tran_date <=" + date_to, null);
if (mCursor != null) {
mCursor.moveToFirst();
}
return mCursor;
}
این کد مربوط به کرسر هست که بر اساس تاریخ جستجو رو انجام میده و چندین مقدار رو برمی گردونه ،میخوام که نتیجه جستجو رو در لیست ویو ببینم

خب اول به این بستگی داره که هر سطر جدول report_1 چندتا فیلد داره. مثلا اگر دو تا فیلد داشته باشه یکی تاریخ و یکی هم عنوان میتونیم یه کلاس به عنوان مدل داده براش در نظر بگیریم:

public class Sample{
private String date;
private String title;

public String getDate(){
return date;
}
public void setDate(String date){
this.date = date;
}
public String getTitle(){
return title;
}
public void setTitle(String title){
this.title = title;
}
}


بعدش وقتی اطلاعات رو از Cursor میخونیم:

public ArrayList<Sample> readData(){
ArrayList<Sample> array = new ArrayList<>();
do{
Sample sample = new Sample();
sample.setDate(cursor.getString(cursor.getColumnIn dex("date_column_name"));
sample.setTitle(cursor.getString(cursor.getColumnI ndex("title_column_name"));
array.add(sample);
}while(cursor.moveToNext());
return array;
}

حالا یه ArrayList داری که اطلاعات هر سطر جدول که مطابق با نتیجه جستجو بوده درش قرار گرفته و اینو میشه به عنوان ورودی به Adapter داد.