SQLite и ListView
Добавлено: 06 апр 2015, 10:25
Всем привет, нужна Ваша помощь все бьюсь и бьюсь.. уже головой...
Короче Есть БД заполняемая входящими SMS, БД класс отдельный, подключение к БД и заполнение производиться в классе исключении где я принимаю SMS,
теперь все ни как немогу подключиться к ней main_activity где её бы следовало загнать в ListView.
Класс БД, в принципе ничего особого тут нет.
Класс для приёма SMS и записи в БД
Ну и метод onCreate MainActivity....
И при всем, при этом ругается страшным матом!!! на то что я творю в main_activity
Короче Есть БД заполняемая входящими SMS, БД класс отдельный, подключение к БД и заполнение производиться в классе исключении где я принимаю SMS,
теперь все ни как немогу подключиться к ней main_activity где её бы следовало загнать в ListView.
Класс БД, в принципе ничего особого тут нет.
Код: Выделить всё
class DBHelper extends SQLiteOpenHelper {
final String LOG_TAG = "myLogs";
public DBHelper(Context context, String name, SQLiteDatabase.CursorFactory factory,
int version) {
// конструктор суперкласса
super(context, "myDB", null, 1);
}
@Override
public void onCreate(SQLiteDatabase db) {
Log.d(LOG_TAG, "--- onCreate database ---");
// создаем таблицу с полями
db.execSQL("create table mytable ("
+ "id integer primary key autoincrement,"
+ "sms text"+ ");");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}Класс для приёма SMS и записи в БД
Код: Выделить всё
public class IncomingSms extends BroadcastReceiver {
final SmsManager sms = SmsManager.getDefault();
EditText etName;
final String LOG_TAG = "myLogs";
Context context;
SimpleDateFormat sdf = new SimpleDateFormat("dd.MM HH:mm ");
Date currentDate = new Date();
public void onReceive(Context context, Intent intent) {
final Bundle bundle = intent.getExtras();
try {
if (bundle != null) {
final Object[] pdusObj = (Object[]) bundle.get("pdus");
for (int i = 0; i < pdusObj.length; i++) {
SmsMessage currentMessage = SmsMessage.createFromPdu((byte[]) pdusObj[i]);
String phoneNumber = currentMessage.getDisplayOriginatingAddress();
String senderNum = phoneNumber;
String message = currentMessage.getDisplayMessageBody();
Log.i("SmsReceiver", "Номер отправителя: " + senderNum + "; Cooбщение: " + message);
// Show alert
int duration = Toast.LENGTH_LONG;
Toast toast = Toast.makeText(context, "Номер отправителя: " + senderNum + ", Cooбщение: " + message, duration);
toast.show();
// Создание базы данных!
DBHelper dbHelper = new DBHelper(context, "myDB", null, 1);
ContentValues cv = new ContentValues();
SQLiteDatabase db = dbHelper.getWritableDatabase();
cv.put("sms", message);
Cursor c = db.query("mytable", null, null, null, null, null, null);
long rowID = db.insert("mytable", null, cv);
Log.d(LOG_TAG, "row inserted, ID = " + rowID + " Текст: " + "sdf.format(currentDate) " +message);
dbHelper.close();
} // end for loop
} // bundle is null
} catch (Exception e) {
Log.e("SmsReceiver", "Exception smsReceiver" + e);
}
}
}Ну и метод onCreate MainActivity....
Код: Выделить всё
db = new DBHelper(cont, "myDB", null, 1);
mDB1 = db.getWritableDatabase();
cursor = mDB1.query("mytable", null, null, null, null, null, null);
startManagingCursor(cursor);
String[] from = new String[] { "sms" };
int[] to = new int[] { R.id.textView1 };
scAdapter = new SimpleCursorAdapter(this, R.layout.itemslid1, cursor, from, to);
lvmq = (ListView) findViewById(R.id.lvm);
lvmq.setAdapter(scAdapter);И при всем, при этом ругается страшным матом!!! на то что я творю в main_activity