如何获取从SQLite数据库中的数据并显示在列表视图中的android

问题描述:

在登录页面我想表现出一种苹果,B为男孩....等高达F..in列表视图。但是,在我的应用程序登录成功完全唯一的登录表创建成功,充分但不是会创建MainMenu的..我想在那之后创建的测试数据库MainMenu的表,我想从获取MainMenu的表中的数据在Android中来的ListView

after login page I want show the A for Apple,B for Boy....ect upto F..in listview. But in my application i login success fully only login table is created success fully but mainmenu is not created.. i want create mainmenu table in test database after that i want fetch the data from mainmenu table to listview in android

      i try this code
      if(username.length()>0&&password.length()>0)
        {
            SQLiteAdapter db=new SQLiteAdapter(Main.this);
            db.openToWrite();
            if(db.Login(username,password))
            {
                System.out.println("goutham");
                Intent intent=new Intent(getApplicationContext(),ExampleActivity.class);

                startActivity(intent);
            } 

SQLiteAdapter.java

SQLiteAdapter.java

           public class SQLiteAdapter {

public static final String MYDATABASE_NAME = "test";
public static final String KEY_USERNAME = "username";
public static final String KEY_PASSWORD = "password";
public static final String MYDATABASE_TABLE = "mainmenu";
private static final String DATABASE_TABLE = "login";
public static final int MYDATABASE_VERSION = 1;
public static final String KEY_ID = "_id";
public static final String KEY_CONTENT = "Content";

// create table MY_DATABASE (ID integer primary key, Content text not null);
private static final String SCRIPT_CREATE_DATABASE = "create table "
        + MYDATABASE_TABLE + " (" + KEY_ID
        + " integer primary key autoincrement, " + KEY_CONTENT
        + " text not null);";
private static final String DATABASE_CREATE = "create table login (_id integer primary key autoincrement, "
        + "username text not null, " + "password text not null);";

private SQLiteHelper sqLiteHelper;
private SQLiteDatabase sqLiteDatabase;

private Context context;

public SQLiteAdapter(Context c) {
    context = c;
}

public SQLiteAdapter openToRead() throws android.database.SQLException {
    sqLiteHelper = new SQLiteHelper(context, MYDATABASE_NAME, null,
            MYDATABASE_VERSION);
    sqLiteDatabase = sqLiteHelper.getReadableDatabase();
    return this;
}

public SQLiteAdapter openToWrite() throws android.database.SQLException {
    sqLiteHelper = new SQLiteHelper(context, MYDATABASE_NAME, null,
            MYDATABASE_VERSION);
    sqLiteDatabase = sqLiteHelper.getWritableDatabase();
    return this;
}

public void close() {
    sqLiteHelper.close();
}

public long insert(String content) {

    ContentValues contentValues = new ContentValues();
    contentValues.put(KEY_CONTENT, content);
    return sqLiteDatabase.insert(MYDATABASE_TABLE, null, contentValues);
}

public int deleteAll() {
    return sqLiteDatabase.delete(MYDATABASE_TABLE, null, null);

}

public Cursor queueAll() {
    String[] columns = new String[] { KEY_ID, KEY_CONTENT };
    Cursor cursor = sqLiteDatabase.query(MYDATABASE_TABLE, columns, null,
            null, null, null, null);

    return cursor;
}

private static class SQLiteHelper extends SQLiteOpenHelper {

    public SQLiteHelper(Context context, String name,
            CursorFactory factory, int version) {
        super(context, name, factory, version);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        // TODO Auto-generated method stub
        db.execSQL(SCRIPT_CREATE_DATABASE);
        db.execSQL(DATABASE_CREATE);
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        // TODO Auto-generated method stub

    }

}

public long AddUser(String username, String password) {
    ContentValues initialValues = new ContentValues();
    initialValues.put(KEY_USERNAME, username);
    initialValues.put(KEY_PASSWORD, password);
    return sqLiteDatabase.insert(DATABASE_TABLE, null, initialValues);

}

public boolean Login(String username, String password) {
    // TODO Auto-generated method stub
    Cursor mCursor = sqLiteDatabase.rawQuery("SELECT * FROM "
            + DATABASE_TABLE + " WHERE username=? AND password=?",
            new String[] { username, password });
    if (mCursor != null) {
        if (mCursor.getCount() > 0) {
            return true;
        }
    }
    return false;
}

 }

ExampleActivity.java

ExampleActivity.java

                 public class ExampleActivity extends Activity {
private SQLiteAdapter mySQLiteAdapter;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    ListView listContent = (ListView) findViewById(R.id.contentlist);

    /*
     * Create/Open a SQLite database and fill with dummy content and close
     * it
     */
    mySQLiteAdapter = new SQLiteAdapter(this);
    mySQLiteAdapter.openToWrite();
    // mySQLiteAdapter.deleteAll();

    mySQLiteAdapter.insert("A for Apply");
    mySQLiteAdapter.insert("B for Boy");
    mySQLiteAdapter.insert("C for Cat");
    mySQLiteAdapter.insert("D for Dog");
    mySQLiteAdapter.insert("E for Egg");
    mySQLiteAdapter.insert("F for Fish");

    mySQLiteAdapter.close();

    /*
     * Open the same SQLite database and read all it's content.
     */
    mySQLiteAdapter = new SQLiteAdapter(this);
    mySQLiteAdapter.openToRead();

    Cursor cursor = mySQLiteAdapter.queueAll();
    startManagingCursor(cursor);

    String[] from = new String[] { SQLiteAdapter.KEY_CONTENT };
    int[] to = new int[] { R.id.text };

    SimpleCursorAdapter cursorAdapter = new SimpleCursorAdapter(this,
            R.layout.row, cursor, from, to);

    listContent.setAdapter(cursorAdapter);

    mySQLiteAdapter.close();

}

}

运行程序的登录表只在数据库中创建,但MainMenu的表是不是在database.after运行程序创建它显示一个错误,如源码回来后,code = 1 MY_TABLE没有这样的表

after running program login table is only created in the database but mainmenu table is not created in the database.after run program it show an error like sqlite returned code=1 no such a table in MY_TABLE

这是我用来获取所有的值code。

this is the code which i am using to fetch all the values.

/ *的这是数据库级的* /

/*this is Database class*/

public String getData1() throws SQLException{
        // TODO Auto-generated method stub
        String[] columns1 = new String[] { KEY_DATE };
        Cursor c1 = ourDatabase.query(DATABASE_MARKSTABLE, columns1, null, null, null,
                null, KEY_ENDINGTIME+" DESC", " 30");
        String result1 = "";

        int isName = c1.getColumnIndex(KEY_DATE);

        for (c1.moveToFirst(); !c1.isAfterLast(); c1.moveToNext()) {

            result1 = result1 + c1.getString(isName)
                    + "  " + "\n";

        }
        c1.close();
        return result1;

    }

和序,以在列表视图中显示出来,请检查此链接

and inorder to display it in the list view please check this link

http://www.technotalkative.com/android-%E2%80%93-listview-%E2%80%93-2-custom-listview/