将数据从sqlite传递到textview

时间:2014-01-31 14:28:24

标签: java android sqlite textview parameter-passing

我正在尝试将数据从sqlite表传递到我的home片段类中的用户名textview,我在textview中显示数据时遇到了困难。  这是我的DatabaseHelper类,其中创建了我的所有表:

公共类DatabaseHandler扩展了SQLiteOpenHelper {

// All Static variables
// Database Version
private static final int DATABASE_VERSION = 1;

// Database Name
private static final String DATABASE_NAME = "u168512214_barzd";

// Login table name
private static final String TABLE_LOGIN = "login";

// Login Table Columns names
private static final String KEY_ID = "id";
private static final String KEY_NAME = "name";
private static final String KEY_EMAIL = "email";
private static final String KEY_UID = "uid";
private static final String KEY_CREATED_AT = "created_at";

public DatabaseHandler(Context context) {
    super(context, DATABASE_NAME, null, DATABASE_VERSION);
}

// Creating Tables
@Override
public void onCreate(SQLiteDatabase db) {
    String CREATE_LOGIN_TABLE = "CREATE TABLE " + TABLE_LOGIN + "("
            + KEY_ID + " INTEGER PRIMARY KEY,"
            + KEY_NAME + " TEXT,"
            + KEY_EMAIL + " TEXT UNIQUE,"
            + KEY_UID + " TEXT,"
            + KEY_CREATED_AT + " TEXT" + ")";
    db.execSQL(CREATE_LOGIN_TABLE);
}

// Upgrading database
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    // Drop older table if existed
    db.execSQL("DROP TABLE IF EXISTS " + TABLE_LOGIN);

    // Create tables again
    onCreate(db);
}

/**
 * Storing user details in database
 * */
public void addUser(String name, String email, String uid, String created_at) {
    SQLiteDatabase db = this.getWritableDatabase();

    ContentValues values = new ContentValues();
    values.put(KEY_NAME, name); // Name
    values.put(KEY_EMAIL, email); // Email
    values.put(KEY_UID, uid); // Email
    values.put(KEY_CREATED_AT, created_at); // Created At

    // Inserting Row
    db.insert(TABLE_LOGIN, null, values);
    db.close(); // Closing database connection
}

/**
 * Getting user data from database
 * */
public HashMap<String, String> getUserDetails(){
    HashMap<String,String> user = new HashMap<String,String>();
    String selectQuery = "SELECT  * FROM " + TABLE_LOGIN;

    SQLiteDatabase db = this.getReadableDatabase();
    Cursor cursor = db.rawQuery(selectQuery, null);
    // Move to first row
    cursor.moveToFirst();
    if(cursor.getCount() > 0){
        Log.i("key_name","value is: " + cursor.getString(1));

         Log.i("key_email","value is: " + cursor.getString(2));
         Log.i("key_uid","value is: " + cursor.getString(3));
         Log.i("key_created_at","value is: " + cursor.getString(4));
    }
    cursor.close();
    db.close();
    // return user
    return user;
}


/**
 * Getting user login status
 * return true if rows are there in table
 * */
public int getRowCount() {
    String countQuery = "SELECT  * FROM " + TABLE_LOGIN;
    SQLiteDatabase db = this.getReadableDatabase();
    Cursor cursor = db.rawQuery(countQuery, null);
    int rowCount = cursor.getCount();
    db.close();
    cursor.close();

    // return row count
    return rowCount;
}

她是我的fragmentHome类,我想在textView中显示用户名:

DatabaseHandler db;

AlertDialogManager alert = new AlertDialogManager();

//会话管理器类     的ArrayList&GT;名称列表;

public HomeFragment(){}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {

    View rootView = inflater.inflate(R.layout.fragment_home, container, false);
                   btnViewBars = (Button)rootView.findViewById(R.id.btnViewBars);
          btnNewBar = (Button)rootView.findViewById(R.id.btnCreateBar);

   // return rootView;
          db= new DatabaseHandler(getActivity());

           HashMap<String, String> user = db.getUserDetails();
           for(int i=0; i<user.size();i++) {

        username.settext(user.get(i).get("name"));

           }

0 个答案:

没有答案