Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
OneMoreBrave24
0 / 0 / 0
Регистрация: 09.10.2015
Сообщений: 18
1

Как записывать данные из SQLite в ListView

04.12.2016, 01:47. Просмотров 439. Ответов 3

Здравствуйте, задался таким вопросом. Есть SQLite таблица, данные в которой берутся из EditText. Я хочу их записывать их в ListView, желательно кликабельны. вопрос, как это сделать? В примере вывожу данные в Log.

Код:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
public class FormActivity extends Fragment implements View.OnClickListener{
 
    DBHelper dbHelper;
 
    Button btnAdd, btnRead, btnClean, btnUpdate, btnDel;
    EditText edId, edName, edWeight, edFrom, edTo, edFIO, edEmail, edPhone;
 
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View rootView = inflater.inflate(R.layout.activity_form, container, false);
 
 
        btnAdd = (Button) rootView.findViewById(R.id.btnAdd);
        btnAdd.setOnClickListener(this);
        //btnAdd.setEnabled(true);
        btnRead = (Button) rootView.findViewById(R.id.btnRead);
        btnRead.setOnClickListener(this);
 
        btnClean = (Button) rootView.findViewById(R.id.btnClean);
        btnClean.setOnClickListener(this);
 
        btnUpdate = (Button) rootView.findViewById(R.id.btnUpdate);
        btnUpdate.setOnClickListener(this);
 
        btnDel = (Button) rootView.findViewById(R.id.btnDel);
        btnDel.setOnClickListener(this);
 
        edId = (EditText) rootView.findViewById(R.id.edId);
        edName = (EditText) rootView.findViewById(R.id.edName);
        edWeight = (EditText) rootView.findViewById(R.id.edWeight);
        edFrom = (EditText) rootView.findViewById(R.id.edFrom);
        edTo = (EditText) rootView.findViewById(R.id.edTo);
        edFIO = (EditText) rootView.findViewById(R.id.edFIO);
        edEmail = (EditText) rootView.findViewById(R.id.edEmail);
        edPhone = (EditText) rootView.findViewById(R.id.edPhone);
 
        getActivity();
        dbHelper = new DBHelper(getActivity());
 
        return rootView;
    }
 
 
    @Override
    public void onClick(View v) {
        String id = edId.getText().toString();
        String name = edName.getText().toString();
        String weight = edWeight.getText().toString();
        String from = edFrom.getText().toString();
        String to = edTo.getText().toString();
        String fio = edFIO.getText().toString();
        String email = edEmail.getText().toString();
        String phone = edPhone.getText().toString();
 
        SQLiteDatabase database = dbHelper.getWritableDatabase();
        //Add items
        ContentValues contentValues = new ContentValues();
 
        switch (v.getId()){
            case R.id.btnAdd:
                if(name.equalsIgnoreCase("") || weight.equalsIgnoreCase("") || from.equalsIgnoreCase("")
                        || to.equalsIgnoreCase("") || fio.equalsIgnoreCase("") || email.equalsIgnoreCase("")
                        || phone.equalsIgnoreCase("")){
                    Toast.makeText(getActivity(), "Incorrect ", Toast.LENGTH_SHORT).show();
                    break;
                }
                contentValues.put(DBHelper.KEY_NAME, name);
                contentValues.put(DBHelper.KEY_WEIGHT, weight);
                contentValues.put(DBHelper.KEY_FROM, from);
                contentValues.put(DBHelper.KEY_TO, to);
                contentValues.put(DBHelper.KEY_FIO, fio);
                contentValues.put(DBHelper.KEY_EMAIL, email);
                contentValues.put(DBHelper.KEY_PHONE, phone);
                database.insert(DBHelper.TABLE_ORDER, null, contentValues);
                break;
 
            case R.id.btnRead:
                Cursor cursor = database.query(DBHelper.TABLE_ORDER, null, null, null, null, null, null);
                if(cursor.moveToFirst()){
                    int idIndex = cursor.getColumnIndex(DBHelper.KEY_ID);
                    int nameIndex = cursor.getColumnIndex(DBHelper.KEY_NAME);
                    int weightIndex = cursor.getColumnIndex(DBHelper.KEY_WEIGHT);
                    int fromIndex = cursor.getColumnIndex(DBHelper.KEY_FROM);
                    int toIndex = cursor.getColumnIndex(DBHelper.KEY_TO);
                    int fioIndex = cursor.getColumnIndex(DBHelper.KEY_FIO);
                    int emailIndex = cursor.getColumnIndex(DBHelper.KEY_EMAIL);
                    int phoneIndex = cursor.getColumnIndex(DBHelper.KEY_PHONE);
                    do {
                        Log.d("mLog", "ID = " + cursor.getInt(idIndex)
                                + ", Description = " + cursor.getString(nameIndex)
                                + ", Weight = " + cursor.getString(weightIndex)
                                + ", From = " + cursor.getString(fromIndex)
                                + ", To = " + cursor.getString(toIndex)
                                + ", FIO = " + cursor.getString(fioIndex)
                                + ", Email = " + cursor.getString(emailIndex)
                                + ", Phone = " + cursor.getString(phoneIndex));
 
                    } while (cursor.moveToNext());
                } else Log.d("mLog", "0 rows");
                cursor.close();
                break;
 
            case R.id.btnClean:
                database.delete(DBHelper.TABLE_ORDER, null, null);
                break;
            case R.id.btnUpdate:
                if(id.equalsIgnoreCase("")){
                    Toast.makeText(getActivity(), "incorrect id", Toast.LENGTH_SHORT).show();
                    break;
                }
                contentValues.put(DBHelper.KEY_NAME, name);
                contentValues.put(DBHelper.KEY_WEIGHT, weight);
                contentValues.put(DBHelper.KEY_FROM, from);
                contentValues.put(DBHelper.KEY_TO, to);
                contentValues.put(DBHelper.KEY_FIO, fio);
                contentValues.put(DBHelper.KEY_EMAIL, email);
                contentValues.put(DBHelper.KEY_PHONE, phone);
                int updCount = database.update(DBHelper.TABLE_ORDER, contentValues, DBHelper.KEY_ID + "= ?", new String[] {id});
                Log.d("mLog", "Updates rows count = " + updCount);
                break;
            case R.id.btnDel:
                if (id.equalsIgnoreCase("")){
                    Toast.makeText(getActivity(), "incorrect id", Toast.LENGTH_SHORT).show();
                    break;
                }
                int delCount = database.delete(DBHelper.TABLE_ORDER, DBHelper.KEY_ID + "= ?", new String[] {id});
                Log.d("mLog", "Deleted rows count = " + delCount);
        }
 
    }
 
}



Код DBHelper:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
public class DBHelper extends SQLiteOpenHelper {
 
    public static final int DATABASE_VERSION = 1;
    public static final String DATABASE_NAME = "ArcDB";
    public static final String TABLE_ORDER = "arcboxes";
 
    public static final String KEY_ID = "_id";
    public static final String KEY_NAME = "name";
    public static final String KEY_WEIGHT = "weight";
    public static final String KEY_FROM = "fromm";
    public static final String KEY_TO = "too";
    public static final String KEY_FIO = "fio";
    public static final String KEY_EMAIL = "email";
    public static final String KEY_PHONE = "phone";
 
 
    public DBHelper(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }
 
    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL("create table " + TABLE_ORDER + " (" + KEY_ID
                + " integer primary key autoincrement," + KEY_NAME + " text," + KEY_WEIGHT + " text," + KEY_FROM
                + " text," + KEY_TO + " text," + KEY_FIO + " text," + KEY_EMAIL + " text," + KEY_PHONE
                + " text" + ");");
    }
 
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        db.execSQL(TABLE_ORDER);
        onCreate(db);
    }
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.12.2016, 01:47
Ответы с готовыми решениями:

Данные из SQlite в ListView, обработка события ListView
Ребят, есть БД, ListView. Надо при нажатии на строчку ListView вытащить данные...

ListView, ToggleButton, SQLite, CursorAdapter. Как найти idItem в ListView, где была нажата ToggleButton?
Добрый день. Затрудняюсь понять один момент: У меня есть ListView,...

Listview вывод данных и переход по нажатию на другой Listview SQLite
Доброго извините за название темы, долго не мог сформировать название, В общем...

Как читать и записывать данные в файл Excel ?
Доброго времени суток! Подскажите как считывать данные из excel файла и в...

Как найти id записи в SQlite таблице при клике на кнопку расположенную в Listview item?
привет ! подскажите пожалуйста решение((( Кейс: у меня есть листвью ,...

3
Alex_Fedor
42 / 42 / 5
Регистрация: 20.01.2015
Сообщений: 279
04.12.2016, 11:21 2
Цитата Сообщение от OneMoreBrave24 Посмотреть сообщение
записывать их в ListView
А где сам ListView. Если попроще, то так когда читаете кнопкой read пишите не только в лог но и какой нибудь String массив, этот стринг массив, после cursur.close передаете куда вам надо, видимо в другой фрагмент. И там стандартно выводите в ListView. Представление как работать со списком. http://startandroid.ru/ru/uroki/vse-...spolzovat.html
0
OneMoreBrave24
0 / 0 / 0
Регистрация: 09.10.2015
Сообщений: 18
04.12.2016, 21:06  [ТС] 3
Alex_Fedor, а почему стринг массив мы передаем после cursor.close()? А не в цикле?
0
Alex_Fedor
42 / 42 / 5
Регистрация: 20.01.2015
Сообщений: 279
04.12.2016, 21:41 4
Чтобы вывести лист виев на экран вам нужен уже сформированный стринг массив. В цикле вы его формирует потом закрываете курсор. По правилам приличия. Дальше лист виев. Я бы так делал.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.12.2016, 21:41

ListView и SQLite
Пишу первую простенькую игру.Пожалуйста подскажите как решить такую задачу:...

SQLite в ListView
Добрый вечер. Нуждаюсь в помощи. Не могу сделать так, чтоб данные с таблицы...

ListView + SQLite
Привет. Взял код из урока 52 на startandroid, немного его изменил public...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru