Создавать постоянные кнопки программно - PullRequest
1 голос
/ 17 октября 2011

Привет, я новичок в Android и хочу знать, как я могу программно добавлять кнопки в свое приложение.На самом деле сценарий таков: в моем приложении у меня есть несколько категорий по умолчанию (задаются в виде кнопок) для сохранения данных.Я должен предоставить возможность добавить категории.Когда я нажимаю на кнопку добавления категории, я должен получить возможность указать название категории и название подкатегории (что я могу сделать).Но дело в том, что я должен получить новую кнопку с введенным именем, и она не должна удаляться при выходе из приложения.Любая помощь высоко ценится.

1 Ответ

0 голосов
/ 17 октября 2011

Чтобы создать базу данных: см. Как создать базу данных в 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 = "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();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...