
نوشته شده توسط
ebrahim1988
اگه ممکنه یه تکه کد بزارید که من چطوری اطلاعات cursor رو تو listview نشون بدم -- مثال کامل نمیخوام چون تو مثال کامل هر کسی از روش خودش همه جای برنامه رو تغییر داده و این منو گیج میکنه -- مرسی
این چیزی که شما میخواید اگر یک لیست با یک آیتم تکس ( لیست ساده ) باشه مشکلی نیست، اما اگر مثال یک لیست ویو کاستوم رو میخواین کدهاش یک تکه نیست، 2 تا کلاس و xml هست و راهی نیست جز اینکه از مثال های آماده استفاده کنید
توی یک لیست ساده میشه با 4 تا خط کد لیست رو پیاده سازی کرد، اما توی لیست ویو کاستوم شما باید یک کلاس آداپتر داشته باشید و اونجا آیتم های لیست رو مقدار بدید
مثال های آماده رو اگر سعی کنید قشنگ آنالیز کنید گیج نمیشید، فقط باید یکم وقت بذارید دیگه
من یک مثال خیلی ساده میذارم اینجا امیدوارم کمک کنه، این مثال از جدول شما اطلاعات ستون اول رو میخونه و داخل لیست نمایش میده
import android.app.Activity;import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;
public class mesal_list extends Activity {
ListView listView ;
SQLiteDatabase mydb;
private static String DBNAME = "PERSONS"; // اگر دیتابیس رو داخل اکلیپس ساختید اسمش رو اینجا مشخص کنید
private static String TABLE = "MY_TABLE"; // THIS IS THE TABLE NAME
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.your_layout);
listView = (ListView) findViewById(R.id.listView1);
// اگر دیتابیس رو داخل اکلیپس ساختید از این روش شیء دیتابیس رو مقدار بدید
mydb = openOrCreateDatabase(DBNAME, Context.MODE_PRIVATE,null);
// اگر دیتابیستون آماده هست از روش های گفته شده در قسمت دیتابیس آماده استفاده کنید
// اینجا تمام اطلاعات رو از جدول میخونیم
// این کوئری میتونه بر اساس نیاز شما تغییر پیدا کنه
// میتونید تنها ستونهای مورد نظرتون رو انتخاب کنید یا با گذاشتن شرط فقط سطرهای واجد شرط رو انتخاب کنید
Cursor allrows = mydb.rawQuery("SELECT * FROM "+ TABLE, null);
String[] NAME = new String[allrows.getCount()];
int i = 0;
if(allrows.moveToFirst()){
do{
// اینجا فقط اطلاعات ستون اول خوانده میشود
// بر اساس نیاز شماره داخل تابع گت استرینگ را تغییر دهید
NAME[i] = allrows.getString(0);
i++;
}
while(allrows.moveToNext());
}
allrows.close();
mydb.close();
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, android.R.id.text1, NAME);
listView.setAdapter(adapter);
}
}