Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
Программирование Android Игра под машинку Добрый день форум чане, мне нужно написать программу под ос андроид, с помощью которой я смогу управлять машинкой через Wi-Fi. Как мне это сделать так как я в программировании не силён, может кто подскажет, может кто поможет? https://www.cyberforum.ru/ android-dev/ thread1702174.html TextView или WebView Программирование Android
Добрый день, суть темы такого, есть у меня в базе обработанный html код - который включает в себя <p><br> <img src=""> <a href=""> ul li .... . Мне этот формат нужно вывести в приложение, вот теперь посоветуйте да стоит ли в приложении в просмотре текста использовать WebView и включить все эти html тэги или же использовать TextView у которого ограниченный круг html тэгов. Минусы WebView...
Программирование Android Постепенно вывести на экран слово "Java", в котором буквы состоят из "интересных" элементов https://www.cyberforum.ru/ android-dev/ thread1702023.html
Я учусь в универе и вот пытаюсь делать лабораторные по языку java, только на свой телефон с помощью android studio )) До этого все получалось и разбирался как и что, а вот с матрицей что то не очень.. Задание звучит так: "Постепенно вывести на экран слово "Java", в котором буквы состоят из "интересных" элементов (леденцов или кофейных зерен или других) в виде матрицы 9х16. " не могу...
Программирование Android Несколько Socket подключений Вообщем, столкнулся с проблемой. Если подключить несколько устройств к сокет серверу, данные получаются только от того, кто был подключен первый. Код сервера:Runnable runnable = new Runnable() { public void run() { try { ServerSocket ss = new ServerSocket(1111); // создаем сокет сервера и привязываем его к вышеуказанному порту Socket socket = ss.accept(); // заставляем... https://www.cyberforum.ru/ android-dev/ thread1701940.html
Программирование Android Bluetooth и два активити
Разрабатываю приложение для связи смартфона по блютус с метеостанцией. По запросу смартфона метеостанция отсылает данные на смартфон. За основу взял открытую программку Bluetooth Chat, коммуникация происодит в отдельном потоке через хандлер. Есть одно активити, где можно синхронизировать время, получать данные и вызывать запрос на подключение к блютус. И есть другое полноэкранное активити где...
Программирование Android Работа с txt файлами в Android. Путь к файлу https://www.cyberforum.ru/ android-dev/ thread1701883.html
Здравствуйте! Уже 3ий день не могу разобраться с тем, как считывать из txt файла. Пишу на Java в IntelliJ IDEA. Я использую ф-ю FileInputStream, в параметрах прописываю путь к файлу. Запускаю на эмуляторе genymotion samsung galaxy s6. Добавил файл в /sdcard/Download/ и так и указал путь к файлу. У меня всегда срабатывает исключение как на скрине. А в fis записывается null, я проверял. ...
Программирование Android Как вывести карту и маркер для определения адреса? https://www.cyberforum.ru/ android-dev/ thread1701681.html
Привет всем. Не давно начал работать с android, нужна помощь знающих разработчиков. Проект буду на android studio. Нужна реализовать что то подобное как на картинке. Надо вывести yandex карту и маркер в центре экрана. Когда буду двигать карту и наведу нужный объекта на маркер нужно вывести адрес этого объекта. p.s Подскажите как это лучше реализовать. Может есть примеры на эту тему или...
Программирование Android Дизайн: элементы размещаются как в рамке, которая меньше экрана
Всем привет, подскажите почему так происходит и как это исправить ? Каким бы не был layout (Relative, Absolute....), элементы размещаются как в рамке, которая меньше экрана. Мне нужна картинка в веб-вью на всю ширину экрана а не с отступами. При запуске на телефоне, тоже отступы по краям
Программирование Android Если LISTView Пуст Добрый вечер ребята, как сделать к примеру если я получил в json error = 1 Раскрыть TextView <ListView android:id="@+id/list" android:layout_width="fill_parent" android:layout_height="wrap_content" android:divider="@color/list_divider" https://www.cyberforum.ru/ android-dev/ thread1701606.html Программирование Android AutoCompleteTextView доброго времени суток. имеется вот такой код. при наследовании от AppCompatActivity все прекрасно работает. начал использовать фрагменты и сразу наткнулся на проблему, как записать данный код если наследовать от Fragment, прошу строго не судить, только начинаю изучать андроид public class vtoroy extends AppCompatActivity { AutoCompleteTextView autoCompleteTextView; String... https://www.cyberforum.ru/ android-dev/ thread1701546.html
Как сохранить состояние нарисованного изображения при повороте экрана? Программирование Android
Добрый вечер! Такая проблема - имеется кастомный View, на котором можно рисовать и который хостится в главной активити. При повороте экрана в горизонтальное положение весь рисунок пропадает( подскажите, пожалуйста. View класс: public class DrawingView extends View { //drawing path private Path drawPath; //drawing and canvas paint private Paint drawPaint, canva
0 / 0 / 0
Регистрация: 11.06.2013
Сообщений: 15
0

Вытащить информацию из SQLite на новое Activity - Программирование Android - Ответ 8975001

04.04.2016, 00:10. Показов 3642. Ответов 12
Метки (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте!
У меня есть 3 класса:
В DB создаю базу данных, записи добавляются прямо из приложения.
В MainActivity по данным из базы создаю ListView, заполняемый с помощью CursorLoader.
По идее, в зависимости от выбранного объекта из ListView запускается новое activity, которое отображает данные из БД по этому объекту. За это должен отвечать третий класс - OneEvent.

Реализовать открытие нового activity у меня получилось, вопрос - как вытащить информацию БД на этот activity?

Коды классов:
MainActivity
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
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.util.Log;
import android.view.View;
import android.view.Menu;
import android.view.MenuItem;
 
import android.content.Context;
import android.database.Cursor;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.LoaderManager.LoaderCallbacks;
import android.support.v4.content.CursorLoader;
import android.support.v4.content.Loader;
import android.support.v4.widget.SimpleCursorAdapter;
import android.view.ContextMenu;
import android.view.ContextMenu.ContextMenuInfo;
import android.widget.AdapterView;
import android.widget.AdapterView.AdapterContextMenuInfo;
import android.widget.ListView;
 
 
import java.util.concurrent.TimeUnit;
 
public class MainActivity extends AppCompatActivity implements LoaderCallbacks<Cursor> {
 
    private static final int CM_DELETE_ID = 1;
    ListView lvData;
    DB db;
    SimpleCursorAdapter scAdapter;
    final String LOG_TAG = "myLogs";
 
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
 
        // открываем подключение к БД
        db = new DB(this);
        db.open();
 
        // формируем столбцы сопоставления
        String[] from = new String[] { DB.COLUMN_TITLE, DB.COLUMN_DATE, DB.COLUMN_TIME };
        int[] to = new int[] { R.id.tvTextTitle, R.id.tvTextDate, R.id.tvTextTime };
 
        // создаем адаптер и настраиваем список
        scAdapter = new SimpleCursorAdapter(this, R.layout.item, null, from, to, 0);
        lvData = (ListView) findViewById(R.id.lvData);
        lvData.setAdapter(scAdapter);
 
        // добавляем контекстное меню к списку
        registerForContextMenu(lvData);
 
        // создаем лоадер для чтения данных
        getSupportLoaderManager().initLoader(0, null, this);
 
       lvData.setOnItemClickListener(new AdapterView.OnItemClickListener() {
           @Override
         public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
       //Log.d(LOG_TAG, "itemClick: position = " + position + ", id = " + id);
 
             Intent myIntent = new Intent(MainActivity.this , OneEvent.class);
               startActivityForResult(myIntent, 0);
        }
         });
 
        FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
        fab.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
                        .setAction("Action", null).show();
            }
        });
    }
 
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        menu.add(0, 1, 0, "Добавить событие");
        return super.onCreateOptionsMenu(menu);
    }
 
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        StringBuilder sb = new StringBuilder();
        //noinspection SimplifiableIfStatement
        sb.append("Item Menu");
        Intent intent = new Intent(this, AddEvent.class);
        startActivityForResult(intent, 1);
 
        return super.onOptionsItemSelected(item);
    }
 
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (data == null) {return;}
        String title = data.getStringExtra("title");
        String date = data.getStringExtra("date");
        String time = data.getStringExtra("time");
        db.addRec(title, date, time);
        getSupportLoaderManager().getLoader(0).forceLoad();
    }
 
    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);
            // получаем новый курсор с данными
            getSupportLoaderManager().getLoader(0).forceLoad();
            return true;
        }
        return super.onContextItemSelected(item);
    }
 
    protected void onDestroy() {
        super.onDestroy();
        // закрываем подключение при выходе
        db.close();
    }
 
    @Override
    public Loader<Cursor> onCreateLoader(int id, Bundle bndl) {
        return new MyCursorLoader(this, db);
    }
 
    @Override
    public void onLoadFinished(Loader<Cursor> loader, Cursor cursor) {
        scAdapter.swapCursor(cursor);
    }
 
    @Override
    public void onLoaderReset(Loader<Cursor> loader) {
 
    }
 
    static class MyCursorLoader extends CursorLoader {
 
        DB db;
 
        public MyCursorLoader(Context context, DB db) {
            super(context);
            this.db = db;
        }
 
        @Override
        public Cursor loadInBackground() {
            Cursor cursor = db.getAllData();
            try {
                TimeUnit.SECONDS.sleep(3);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            return cursor;
        }
 
    }
}
OneEvent
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
package ru.startandroid.p000111testing;
 
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import android.widget.Button;
import android.view.View.OnClickListener;
/**
 * Created by F.Slowpoke on 03.04.2016.
 */
public class OneEvent extends Activity implements OnClickListener {
 
    TextView tvEventTitle, tvEventDate, tvEventTime;
    int id = 0;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.one_event);
    }
 
    @Override
    public void onClick(View v) {
    }
}
DB
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
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
/**
 * Created by F.Slowpoke on 02.04.2016.
 */
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_TITLE = "title";
    public static final String COLUMN_DATE = "date";
    public static final String COLUMN_TIME = "time";
 
    private static final String DB_CREATE =
            "create table " + DB_TABLE + "(" +
                    COLUMN_ID + " integer primary key autoincrement, " +
                    COLUMN_TITLE + " text, " +
                    COLUMN_DATE + " text, " +
                    COLUMN_TIME + " 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, "_id DESC");
    }
 
    // добавить запись в DB_TABLE
    public void addRec(String tit, String dat, String tim) {
        ContentValues cv = new ContentValues();
        cv.put(COLUMN_TITLE, tit);
        cv.put(COLUMN_DATE, dat);
        cv.put(COLUMN_TIME, tim);
        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 < 3; i++) {
                cv.put(COLUMN_TITLE, "sometext " + i);
                cv.put(COLUMN_DATE, "sometext " + i);
                cv.put(COLUMN_TIME, "sometext " + i);
                db.insert(DB_TABLE, null, cv);
            }
        }
 
        @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        }
    }
}


Вернуться к обсуждению:
Вытащить информацию из SQLite на новое Activity Программирование Android
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.04.2016, 00:10
Готовые ответы и решения:

Вытащить информацию из базы данных Sqlite
Здравствуйте! Пишу простенькое приложение &quot;Справочник&quot;. В кратком что у меня есть: 3 класса:...

Новое Activity или ViewGroup
Здравствуйте. НЕ подскажите, как нужно правильно реализовать вот такой UI: Тут верхний ряд...

Передача ImageView в новое activity
Здравствуйте! Подскажите, пожалуйста, как при переходе в новое activity подставить изображение в...

Ошибка при переходе на новое Activity
Здравствуйте, уважаемые программисты! Не могли бы вы мне помочь? При переходе на новое активити...

12
04.04.2016, 00:10
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.04.2016, 00:10
Помогаю со студенческими работами здесь

Не открывается новое окно у которого класс наследуется не от Activity
Помогите, у меня две активности, одна базовая наследуется от Activity и другая активность его класс...

Вызвать из ListView новое Activity (где задействован SimpleAdapter)
Привет Всем! Я купил себе android... и вдруг возникли мысли ...почему бы не сделать приложения.......

Переход на новое activity с элемента listView, заполненного через SimpleCursorAdapter
Здравствуйте! Помогите разобраться с такой проблемой: Есть список listView, который получает...

При нажатии на элемент ListView вывести новое Activity с информацией об этом элементе
Здравствуйте! Помогите пожалуйста! В общем есть список ListView с названиями кафе и ресторанов,...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru