以编程方式创建永久按钮

时间:2011-10-17 09:48:44

标签: android button

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

1 个答案:

答案 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();