您好我是Android新手,我想知道如何以编程方式向我的应用添加按钮。实际上情况是这样的:在我的应用程序中,我有几个默认类别(给定为按钮)来保存数据。我必须提供一个选项添加类别。当我点击添加类别按钮时,我必须选择指定类别名称和子类别名称(我可以这样做)。但问题是我必须得到一个带有输入名称的新按钮,当我离开应用程序时它不应该被删除。任何帮助都非常感谢。
答案 0 :(得分: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
{
public static final String TABLENAME_DB =“table_name”;
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();