lundi 19 octobre 2015

Sqlite SimpleCursorAdapter and ListView app crashes [duplicate]

After Learning So Many Tutorials now i am creating an application

I have a problem displaying an records from my db in listview i want to display all the fields of Title in a Textview When i start my app it crash at the beggining and in my logcat it shows error in SimpleCursorAdapter in Main Activity as column '_id' does not exist

This is my code :

My Create Statement in SqliteManager

CREATE TABLE "record" ("itemno" INTEGER PRIMARY KEY  NOT NULL , "title" TEXT, "subcategory" TEXT, "detail" TEXT, "images" TEXT)

Database Class:

public class SqliteDBHelper extends SQLiteOpenHelper {

// Database Version
private static final int DATABASE_VERSION = 1;

// Database Name
private static final String DATABASE_NAME = "ayur.sqlite";
private static final String DB_PATH_SUFFIX = "/databases/";
public static final String ITEMNO="itemno";
public static final String TITLE="title";
public static final String SUBCATEGORY="subcategory";
public static final String DETAIL="detail";
public static final String IMAGES="images";
public static final String TABLENAME="record";
static Context ctx;
 public Cursor gettiles(SQLiteDatabase db)
{
    db = this.getReadableDatabase();


    cursor = db.query(true, TABLENAME , new  String[]{TITLE,ITEMNO}, null, null, null, null, null, null);
    if (cursor != null) {
        cursor.moveToFirst();
    }
    return cursor;
}

MainActivity:

public class MainActivity extends ActionBarActivity {

ListView listView;
SqliteDBHelper dbHelper;
SQLiteDatabase sqLiteDatabase;
Cursor cursor;
DataProvider dataProvider;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    listView= (ListView) findViewById(R.id.listView);
    dbHelper= new SqliteDBHelper(this);
    try {
        dbHelper.openDataBase();
    } catch (SQLException e) {
        e.printStackTrace();
    }
    cursor =dbHelper.gettiles(sqLiteDatabase);
    String[] from = new String[]{dbHelper.TITLE};
    int[] to = new int[]{R.id.title};
    SimpleCursorAdapter adapter= new SimpleCursorAdapter(this,R.layout.title_row,cursor,from,to);
    adapter.notifyDataSetChanged();
    listView.setAdapter(adapter);
}

Logcat:

 Caused by: java.lang.IllegalArgumentException: column '_id' does not exist
        at android.database.AbstractCursor.getColumnIndexOrThrow(AbstractCursor.java:303)
        at android.support.v4.widget.CursorAdapter.init(CursorAdapter.java:174)
        at android.support.v4.widget.CursorAdapter.<init>(CursorAdapter.java:151)
        at android.support.v4.widget.ResourceCursorAdapter.<init>(ResourceCursorAdapter.java:93)
        at android.support.v4.widget.SimpleCursorAdapter.<init>(SimpleCursorAdapter.java:89)
        at com.example.aeiltech.sidd.MainActivity.onCreate(MainActivity.java:35)

Aucun commentaire:

Enregistrer un commentaire