Форум программистов, компьютерный форум CyberForum.ru

ListView и Диалог - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Обработка перемещения объекта на экране - MotionEvent.ACTION_MOVE http://www.cyberforum.ru/android-dev/thread1154799.html
Когда перемещаю картинку к краю экрана, то её размер уменьшается, а после совсем исчезает. Нужно сохранять размер постоянным. Как? droid.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { layoutParams = (LayoutParams) v.getLayoutParams(); // обрабатываем позиции switch (event.getAction()) {
Программирование Android Клиент-сервер Linux-Android Передо мной стоит задача - написать простенький клиент сервер. Сервер на Debian, клиент Android 4.2.2. Вопрос собссно какой - подсказать в каком направлении копать. Какую библиотеку оптимально использовать для связи. В идеале дать ссылочку на похожий мануал. Заранее всем спасибо =) http://www.cyberforum.ru/android-dev/thread1154419.html
Программирование Android Наследование от ImageView
Класс: public class AnimalView extends ImageView { private int AnimalType; public static final int DONKEY = 1; public static final int SQUIRREL = 2; public AnimalView(Context context) { super(context); }
Программирование Android Post запрос
Как отправить Post запрос и принять ответ сервера ? Exlipce
Программирование Android Обработка нажатия CheckBox в ListView http://www.cyberforum.ru/android-dev/thread1154098.html
Привет, Есть ListView на основе BaseAdapter. Каждый элемент содержит TextView и несколько чекбоксов. Как обработать нажатие на конкретный CheckBox? onListItemClick при нажатие на чекбокс не вызывается.
Программирование Android Не приходит ответ при HttpPost Уже неделю мучаюсь с одной проблемой. Необходимо отправить запрос на сервер и получить ответ. Запрос, как я понимаю, проходит, однако ответ по какой-то причине не приходит. Запрос с AsyncTask: class RequestTask extends AsyncTask<String, String, String> { @Override protected String doInBackground(String... params) { try { ... подробнее

Показать сообщение отдельно
toxic_wower
0 / 0 / 0
Регистрация: 23.04.2014
Сообщений: 12
24.04.2014, 12:55  [ТС]     ListView и Диалог
В общем вот что у меня получилось.

Класс по работе с БД:
Javascript
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
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";
 
    private static final String DB_CREATE = "create table " + DB_TABLE + "("
            + COLUMN_ID + " integer primary key autoincrement, " + COLUMN_IMG
            + " integer, " + COLUMN_TXT + " text" + ", " + ");";
 
    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);
    }
 
    // добавить запись в DB_TABLE
    public void addRec(String txt, int img) {
        ContentValues cv = new ContentValues();
        cv.put(COLUMN_TXT, txt);
        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);
 
            ContentValues cv = new ContentValues();
            for (int i = 1; i < 5; i++) {
                cv.put(COLUMN_TXT, "sometext " + i);
                cv.put(COLUMN_IMG, R.drawable.ic_launcher);
                db.insert(DB_TABLE, null, cv);
            }
        }
 
        @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        }
    }
 
}
класс MainActivity:
Javascript
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
public class MainActivity extends Activity {
 
    final Context context = this;
    final int DIALOG_EDIT = 1;
    private static final int CM_DELETE_ID = 1;
    ListView lvData;
    DB db;
    SimpleCursorAdapter scAdapter;
    Cursor cursor;
    TextView text1;
 
    /** Called when the activity is first created. */
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
 
        text1 = (TextView) findViewById(R.id.text1);
 
        // открываем подключение к БД
        db = new DB(this);
        db.open();
 
        // получаем курсор
        cursor = db.getAllData();
        startManagingCursor(cursor);
 
        // формируем столбцы сопоставления
        String[] from = new String[] { DB.COLUMN_IMG, DB.COLUMN_TXT };
        int[] to = new int[] { R.id.ivImg, R.id.tvText };
 
        // создааем адаптер и настраиваем список
        scAdapter = new SimpleCursorAdapter(this, R.layout.item, cursor, from,
                to);
        lvData = (ListView) findViewById(R.id.lvData);
        lvData.setAdapter(scAdapter);
 
        // добавляем контекстное меню к списку
        registerForContextMenu(lvData);
    }
 
    // обработка нажатия кнопки
    public void onButtonClick(View view) {
        showDialog(DIALOG_EDIT);
        // обновляем курсор
        cursor.requery();
    }
 
    protected Dialog onCreateDialog(int id) {
        if (id == DIALOG_EDIT) {
            AlertDialog.Builder adb = new AlertDialog.Builder(this);
 
            // !
            // get prompts.xml view
            LayoutInflater li = LayoutInflater.from(context);
            View promptsView = li.inflate(R.layout.promts, null);
 
            AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
                    context);
 
            // set prompts.xml to alertdialog builder
            alertDialogBuilder.setView(promptsView);
 
            final EditText userInput = (EditText) promptsView
                    .findViewById(R.id.editTextDialogUserInput);
 
            // set dialog message
            alertDialogBuilder
                    .setCancelable(false)
                    .setPositiveButton("OK",
                            new DialogInterface.OnClickListener() {
                                public void onClick(DialogInterface dialog,
                                        int id) {
                                    EditText editTextDialogUserInput = userInput;
                                    db.addRec(editTextDialogUserInput.getText()
                                            .toString(), R.drawable.ic_launcher);
                                    editTextDialogUserInput.setText("");
                                    cursor.requery();
 
                                }
                            })
                    .setNegativeButton("Cancel",
                            new DialogInterface.OnClickListener() {
                                public void onClick(DialogInterface dialog,
                                        int id) {
                                    dialog.cancel();
                                }
                            });
 
            // create alert dialog
            AlertDialog alertDialog = alertDialogBuilder.create();
 
            // show it
            alertDialog.show();
 
        }
 
        // !
 
        return super.onCreateDialog(id);
    }
 
    public void onCreateContextMenu(ContextMenu menu, View v,
            ContextMenuInfo menuInfo) {
        super.onCreateContextMenu(menu, v, menuInfo);
        menu.add(0, CM_DELETE_ID, 0, R.string.delete_record);
    }
 
    public boolean onContextItemSelected(MenuItem item) {
        if (item.getItemId() == CM_DELETE_ID) {
            // получаем из пункта контекстного меню данные по пункту списка
            AdapterContextMenuInfo acmi = (AdapterContextMenuInfo) item
                    .getMenuInfo();
            // извлекаем id записи и удаляем соответствующую запись в БД
            db.delRec(acmi.id);
            // обновляем курсор
            cursor.requery();
            return true;
        }
        return super.onContextItemSelected(item);
    }
 
    protected void onDestroy() {
        super.onDestroy();
        // закрываем подключение при выходе
        db.close();
    }
 
}
Миниатюры
ListView и Диалог   ListView и Диалог   ListView и Диалог  

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