2012-06-18 28 views
5

Estoy tratando de crear base de datos árabe en la aplicación de Android y quiero ver cómo puedo lograr eso?Insertar y seleccionar datos en árabe Android SQLite

Sé que tendré que hacer la codificación y esas cosas. Pero quiero saber si alguien realmente intentó crear una base de datos no inglesa y me ayudó a hacer el mejor acercamiento.

+0

no puede u convertir esos datos de Árabe al Inglés y que puede almacenar en la base de datos? Solo supongo que esto ... – Aamirkhan

Respuesta

1

que podía hacerlo desde Eclipse y sin codificación, si salvo el archivo como UTF-8 y escribir los datos arábiga normalmente ..

3

Así que para crear SQLite mejor enfoque es utilizar SQLiteOpenHelper y crear su propia clase que se extiende desde SQLiteOpenHelper, implementa onCreate(), método y onUpgrade() método.

Ejemplo de cómo crear la base de datos:

public class DatabaseHandler extends SQLiteOpenHelper { 

    private static final String DATABASE_NAME = "basic_login_system_database"; 
    protected static final String USER_TABLE_NAME = "User"; 
    protected static final int DATABASE_VERSION = 1; 

    protected static final String KEY_ID = "id"; 
    protected static final String KEY_NAME = "name"; 
    protected static final String KEY_SURNAME = "surname"; 
    protected static final String KEY_PASSWORD = "password"; 
    protected static final String KEY_EMAIL = "email"; 
    protected static final String KEY_ADDRESS = "adress"; 
    protected static final String KEY_AGE = "age"; 


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

    public void onCreate(SQLiteDatabase db) { 
     String CREATE_USER_TABLE = "CREATE TABLE " + USER_TABLE_NAME + "(" 
       + KEY_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " 
       + KEY_NAME + " TEXT NOT NULL, " 
       + KEY_SURNAME + " TEXT NOT NULL, " 
       + KEY_PASSWORD + " TEXT NOT NULL, " 
       + KEY_EMAIL + " TEXT UNIQUE NOT NULL, " 
       + KEY_ADDRESS + " TEXT, " 
       + KEY_AGE + " TEXT" + ")"; 
     db.execSQL(CREATE_USER_TABLE); 
    } 

    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
     String DELETE_USER_TABLE = "DROP TABLE IF EXISTS " + USER_TABLE_NAME; 
     db.execSQL(DELETE_USER_TABLE); 
     onCreate(db);  
    } 
} 

Y debe configurar la codificación de caracteres Arabic porque implícitamente se fijó en utf-8.

private static final String ENCODING_SETTING = "PRAGMA encoding ='windows-1256'";

y se configura en su método onOpen().

@Override 
public void onOpen(SQLiteDatabase db) { 
    if (!db.isReadOnly()) { 
     db.execSQL(ENCODING_SETTING); 
    } 
} 

Entonces, para recuperar los datos de su base de datos sólo tiene que utilizar Cursor con métodos rawQuery() o query().

Ejemplo:Cursor c = db.raQuery(SELECT_STATEMENT, null);

Para los datos de inserción utilizar insert() método de SQLiteDatabase.

Cuestiones relacionadas