Помогите, пожалуйста, в создании первого приложения.
Пользователь вводит текст(editText1)
Нажимает подтверждающую кнопку после окончания введения ("ок")
Появляется диалог
Пользователь выбирает какой-то пункт.(data[lv.getCheckedItemPosition()])
Два этих значения сохраняются в списке и БД.
Проблема в том, что объявляя столбец пунктом из диалога при запуске выдает ошибку.
Работает, если имя этого столбца = имени столбца с текстом, который ввел пользователь.
Но тогда значения одинаковые выводятся(те, которые указывались последними)
Никак не могу решить это, ПОМОГИТЕ, пожалуйста.
Код: Выделить всё
public void onClick(DialogInterface dialog, int which) {
ListView lv = ((AlertDialog) dialog).getListView();
if (which == Dialog.BUTTON_POSITIVE){
editText1 = (TextView) findViewById(R.id.editText1);
tvText = (TextView) findViewById(R.id.tvText);
textView1 = (TextView) findViewById(R.id.textView1);
String text=editText1.getText().toString();
String text1=data[lv.getCheckedItemPosition()];
// добавляем запись
db.addRec(text, text1, R.drawable.ic_launcher);
tvText.setText(text);
textView1.setText(text1);
editText1.setText(null);
// обновляем курсор
cursor.requery();
}Код: Выделить всё
public class DB {
// Данные базы данных и таблиц
private static final String DB_NAME = "mydb";
private static final int DB_VERSION = 1;
private static final String DB_TABLE = "mytab";
//Название столбцов
public static final String COLUMN_ID = "_id";
public static final String COLUMN_IMG = "img";
public static final String COLUMN_TXT = "txt";
public static final String COLUMN_MON = "mon"; //НЕ РАБОТАЕТ, ЕСЛИ ТАК УКАЗАНО. ЕСЛИ ПОСТАВИТЬ = "txt" - РАБОТАЕТ, НО НЕ ПРАВИЛЬНО.
private static final String DB_CREATE =
"create table " + DB_TABLE + "(" +
COLUMN_ID + " integer primary key autoincrement," +
COLUMN_IMG + " integer," +
COLUMN_TXT + " text," +
COLUMN_MON + " text not null);";
private final Context mCtx;
private DBHelper mDBHelper;
private SQLiteDatabase mDB;
public DB(Context ctx) {
mCtx = ctx;
}
// открыть подключение
public void open() {
mDBHelper = new DBHelper(mCtx, DB_NAME, null, DB_VERSION);
mDB = mDBHelper.getWritableDatabase();
}
// закрыть подключение
public void close() {
if (mDBHelper!=null) mDBHelper.close();
}
// получить все данные из таблицы DB_TABLE
public Cursor getAllData() {
return mDB.query(DB_TABLE, null, null, null, null, null, null, null);
}
// добавить запись в DB_TABLE
public void addRec(String txt, String mon, int img) {
ContentValues cv = new ContentValues();
cv.put(COLUMN_TXT, txt);
cv.put(COLUMN_MON, mon);
cv.put(COLUMN_IMG, img);
mDB.insert(DB_TABLE, null, cv);
}
// удалить запись из DB_TABLE
public void delRec(long id) {
mDB.delete(DB_TABLE, COLUMN_ID + " = " + id, null);
}
// класс по созданию и управлению БД
private class DBHelper extends SQLiteOpenHelper {
public DBHelper(Context context, String name, CursorFactory factory,
int version) {
super(context, name, factory, version);
}
// создаем и заполняем БД
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(DB_CREATE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
}