بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

مشکل در listView توسط دیتابیس SQLiteAssetHelper

مدیریت گفتگو
MeHDi 11 سال پیش
آخرین تغییر: 11 سال پیش

سلام به همه دوستان. نمیدونستم که دقیق چه عنوانی را قرار بدم. (یه خورده قاطی پاطیه :دی)

من میخواستم لیست ویو را از طریق دیتابیس پر کنم. 

در ابتدا دیتابیس را ساختم و تونستم از طریق لایبری SQLiteAssetHelper بهش اتصال برقرار کنم و مواردی را که میخواستم را در Logcat مشاهده کردم.

حالا وقتی میخوام لیست ویو را بسازم و این عناوین را در لیست ویو قرار بدم خطا میگیره. متاسفانه خطای گفته شده نیز اصلا خوانا نیست تا بتونم دیباگ کنم. ممنون میشم دوستان راهنمایی بفرمایند. (کدهای مربوط به اتصال را قرار نمیدم چون مشکلی نداره)

 public class AdapterNote extends ArrayAdapter<StructTask> {

    public AdapterNote(ArrayList<StructTask> array) {
        super(G.context,R.layout.adapter_list, array); //یکی از خطاها این خط میباشد!
    }

کلاس اکتیویتی:

 import android.app.Activity;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.util.Log;
import android.widget.ListView;

import java.util.ArrayList;


public class MainActivity extends Activity {


    private AdapterNote adapter;
    private ListView listView;


    public static MyDatabase db;
    public static Cursor cursor;

    public static ArrayList<StructTask> tasks = new ArrayList<StructTask>();

    public static SQLiteDatabase datebase;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


        listView= (ListView) findViewById(R.id.listView);

        adapter = new AdapterNote(tasks);// خطا از این خط
        listView.setAdapter(adapter);

        db = new MyDatabase(this);
        db.setForcedUpgrade();
        datebase = db.getReadableDatabase();
        cursor = datebase.rawQuery("SELECT * FROM titles ",null);
        while (cursor.moveToNext()) {
            try {
                StructTask listdb = new StructTask();
                listdb.title = cursor.getString(cursor.getColumnIndex("title"));
                Log.i("LOG", "the recored is" + cursor.getString(cursor.getColumnIndex("title")));
                tasks.add(listdb);
            } catch (Exception e) {

            }
        }
        cursor.close();
        datebase.close();

        adapter.notifyDataSetChanged();
    }
}

وقتی در اکتیویتی اون خط بهمراه خط های مربوطه را کامنت میکنم برنامه بدرستی کار میکنه و عناوین در Logcat نمایش داده میشوند.

 پیشاپیش از راهنمایی دوستان تشکر دارم.

لاگ خطا: (البته نه همشون فقط مهم هاشون)

 

 Process: com.androone.app.database, PID: 2422
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.androone.app.database/com.androone.app.database.MainActivity}: java.lang.NullPointerException
           
            at com.androone.app.database.AdapterNote.<init>(AdapterNote.java:15)
            at com.androone.app.database.MainActivity.onCreate(MainActivity.java:35)
            

 

نظرات

Hajhosseini 11 سال پیش
لطفا خطا های لاگ کت رو به برنامتون اضافه کنید، به جای (db = new MyDatabase(this هم از MainActivity .this استفاده کنید
MeHDi 11 سال پیش
البته اون قسمت از خط مشکلی نداره . بیشتر برای ساخت لیست ویو هست. جالبه با همین کدها لیست ویو را از طریق دیتابیس Mysql براحتی ساخته شده!
Spirit 11 سال پیش
کلاس G رو داخل Manifest تعریف کردین؟
MeHDi 11 سال پیش
واقعا یه اشتباهات بسیار کوچیک چه کارها که نمیکنه!!! دقیقا مشکل همین بوده... عجیبه که چطور توجه نکردم. ممنونم
MeHDi 11 سال پیش
هنوز دارم خودمو سرزنش میکنم که چرا باید همچین اشتباهاتی رو انجام بدم.... واقعا برای خودمم متاسف شدم.! باز هم تشکر.
MeHDi 11 سال پیش
هنوز دارم خودمو سرزنش میکنم که چرا باید همچین اشتباهاتی رو انجام بدم.... واقعا برای خودمم متاسف شدم.! باز هم تشکر.

هنوز پاسخی ثبت نشده است


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