2011-10-17 36 views
1

嗨,我是新來的android,我想知道我可以如何以編程方式將按鈕添加到我的應用程序。其實情況是這樣的:在我的應用程序中,我有幾個默認類別(作爲按鈕提供)來保存數據。我必須提供一個選項添加類別。當我點擊添加類別按鈕時,我必須得到一個選項來指定類別名稱和子類別名稱(我可以這樣做)。但問題是我必須使用輸入的名稱獲得一個新按鈕,並且當我離開應用程序時它不應該被刪除。任何幫助,高度讚賞。以編程方式創建永久按鈕

+0

永久性按鈕確實不作sense.When你會離開應用程序,您在哪裏如何需要看鈕釦?? – Hiral

+0

我不想讓這些按鈕被刪除。我希望這些按鈕保持不變,以便當我再次進入應用程序時,添加的類別(按鈕)必須在那裏。 – krf

+0

然後,您必須將它們保存在某個地方,並根據存儲的類別數據創建您的視圖。你不要永久保存類別..? – Hiral

回答

0

要創建數據庫:指How do I create a database in android?

然後,你需要使用DatabaseHelper類插入,更新或刪除數據的數據庫。 參考http://developer.android.com/reference/android/database/sqlite/SQLiteOpenHelper.html

現在您必須能夠在您的活動中使用DatabaseHelper類的對象來管理您的數據。

1.DatabaseCreator.java

public class DatabaseCreator extends SQLiteOpenHelper{ 

    private static final String DB_NAME="database_name"; 
    private static final int DB_VER=1; 

    private static final String TABLE_NAME="create table table_name(_id integer primary key autoincrement,field1 text not null,field2 text not null)"; 

    public DatabaseCreator(Context context) 
    { 
     super(context,DB_NAME, null, DB_VER); 
    } 

    @Override 
    public void onCreate(SQLiteDatabase database) 
    { 
     database.execSQL(TABLE_NAME);  
    } 

    @Override 
    public void onUpgrade(SQLiteDatabase database, int arg1, int arg2) { 

     database.execSQL("DROP TABLE IF EXISTS table_name"); 

     onCreate(database); 
    } 
} 

2.DatabaseHelper.java

公共類DatabaseHelper {
公共靜態最終字符串TABLENAME_DB = 「表格名」;

public static final String KEY_ID="_id"; 
    public static final String KEY_FIELD1="field1"; 
    public static final String KEY_FIELD2="field2"; 

    Context context; 
    SQLiteDatabase sqdb; 
    DatabaseCreator dbcreator; 

    public DatabaseHelper(Context context) 
     { 
    this.context=context; 
    } 

    public DatabaseHelper open() throws SQLException 
    { 
    dbcreator=new DatabaseCreator(context); 
    sqdb=dbcreator.getWritableDatabase(); 
    return this; 
    } 

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

    public long addItem(String field1,String field2) 
    { 
    ContentValues values=new ContentValues(); 
    values.put(KEY_FIELD1,field1); 
    values.put(KEY_FIELD2,field2); 
    return sqdb.insert(TABLENAME_DB,null,values); 
    } 

    public long deletItem(long _id) 
    { 
    return sqdb.delete(TABLENAME_DB, "_id="+_id,null); 
    } 

}

使用此在您的活動,如:

DatabaseHelper db_helper=new DatabaseHelper(getApplicationContext()); 
db_helper.open(); 

db_helper.addItem("field1_value","field2_value"); 

db_helper.close(); 
相關問題