2015-01-25 1 views
0

HomeAcitivity TextView에서 "전자 메일"및 "주소"를 읽고 표시하는 방법.커서로 SQLite를 읽고 textview에 표시하는 방법

데이터베이스는 1 행의 데이터 만 저장하도록 설계되었습니다.

DatabaseHandler.java

package com.example.androidjhfong.library; 

import java.util.HashMap; 

import android.content.ContentValues; 
import android.content.Context; 
import android.database.Cursor; 
import android.database.sqlite.SQLiteDatabase; 
import android.database.sqlite.SQLiteOpenHelper; 

public class DatabaseHandler extends SQLiteOpenHelper { 

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

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

    // 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_ADDRESS = "address"; 
    private static final String KEY_PHONE = "phone"; 
    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_ADDRESS + " TEXT," 
       + KEY_PHONE + " 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 address, String phone, 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_ADDRESS, address); // Address 
     values.put(KEY_PHONE, phone); // phone 
     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){ 
      user.put("name", cursor.getString(1)); 
      user.put("email", cursor.getString(2)); 
      user.put("uid", cursor.getString(3)); 
      user.put("address", cursor.getString(4)); 
      user.put("phone", cursor.getString(5)); 
      user.put("created_at", cursor.getString(6)); 

     } 
     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; 
    } 

    /** 
    * Re crate database 
    * Delete all tables and create them again 
    * */ 
    public void resetTables(){ 
     SQLiteDatabase db = this.getWritableDatabase(); 
     // Delete All Rows 
     db.delete(TABLE_LOGIN, null, null); 
     db.close(); 
    } 

    /** 
    * Getting product status 
    **/ 

    public String getData() { 

     String username; 
     String getdata = "SELECT name FROM " + TABLE_LOGIN; 
     //String[] columns = new String[]{ KEY_ID, KEY_NAME, KEY_ADDRESS, KEY_PHONE}; 
     SQLiteDatabase db = this.getReadableDatabase(); 
     Cursor cursor = db.rawQuery(getdata, null); 
     cursor.moveToFirst(); 
     username=cursor.getString(cursor.getColumnIndex("name")); 
     cursor.close(); 
     db.close(); 
     return username; 
    } 
} 

방법이 제대로 HomeActivity의 데이터 표시를 검색 표시하려면?

HomeActivity 당신의 HomeActivty

public class HomeActivity extends Activity implements OnItemSelectedListener{ 

TextView inputname 
TextView inputemail; 
TextView inputaddress; 

Button btnPurchase; 

// JSON Response node names 
private static String KEY_SUCCESS = "success"; 
private static String KEY_ADDRESS = "address"; 

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

    inputname= (TextView) findViewById(R.id.qrpurchaseitem); 
    inputaddress = (TextView) findViewById(R.id.qrtextpurchaseaddress); 
    inputemail = (TextView) findViewById(R.id.qrtextpurchasecomment); 


    DatabaseHandler db = new DatabaseHandler(getApplicationContext()); 
    HashMap<String, String> key = db.getUserDetails(); 

     String text= DatabaseHandler.getUserDetails(); 
} 
+0

'String text = Databas eHandler.getUserDetails();'가 컴파일되지 않습니다 – Karakuri

+0

그래, 그 후에 내가 잘못했기 때문에 도움을 청합니다. – nic

+0

getData() 함수가 정확한 데이터를 제공합니까? –

답변

0

지금

String email=db.getEmail() 
String address=db.getAddress(); 

은 다음 데이터베이스 핸들러 클래스 당신의 방법을 아래에 사용할 수있는이 라인 모두 추가, 단지 방법 아래

에서 변수 이름을 변경
public String getStartBal() { 
    Cursor cr=ourDatabase.rawQuery("SELECT "+KEY_START_BAL+" FROM "+DB_TABLE,null); 
    String sum=""; 
    for(cr.moveToFirst();!cr.isAfterLast();cr.moveToNext()){ 
     sum=cr.getString(cr.getColumnIndex(KEY_START_BAL)); 
    } 
    cr.close(); 
    return sum; 
} 
+0

내 인생을 도우며 u sooooo를 좋아해 주셔서 감사합니다 – nic

+0

오신 것을 환영합니다 –

관련 문제