I have written a code for Save data in my SQLite Database and i want to show it in my ListView.
My MainActivity is
public class MainActivity extends AppCompatActivity{
//// variable deaclear
public static final String ROW_ID = "row_id";
public static final String TITLE = "title";
private ListView listView;
private DatabaseConnector databaseConnector;
private ListView noteListView;
private CursorAdapter noteAdapter;
static String[] from = new String[]{TITLE};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
int[] to = new int[] {R.id.ViewTitleNotes};
listView = (ListView) findViewById(R.id.listView);
Cursor cursor = databaseConnector.listAllNotes();
noteAdapter = new SimpleCursorAdapter(MainActivity.this, R.layout.list_note, cursor, from, to);
listView.setAdapter(noteAdapter);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Intent intent = new Intent(MainActivity.this, ViewNote.class);
intent.putExtra(ROW_ID , id);
startActivity(intent);
}
});
}
@Override
protected void onResume() {
super.onResume();
new GetNotes().execute(from);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@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.
int id = item.getItemId();
switch (id){
case R.id.add_note:
Intent intent = new Intent(MainActivity.this , AddEditNote.class);
startActivity(intent);
break;
default:
break;
}
return super.onOptionsItemSelected(item);
}
// get note Asyntask
public class GetNotes extends AsyncTask<Object , Object , Cursor>{
DatabaseConnector databaseConnector = new DatabaseConnector(MainActivity.this);
@Override
protected Cursor doInBackground(Object... params) {
databaseConnector.open();
return databaseConnector.listAllNotes();
}
@Override
protected void onPostExecute(Cursor cursor) {
super.onPostExecute(cursor);
databaseConnector.close();
}
}
@Override
protected void onStop() {
super.onStop();
Cursor cursor = noteAdapter.getCursor();
if (cursor!=null){
cursor.deactivate();
}
noteAdapter.changeCursor(null);
}
}
And my DataBaseConnector class is
public class DatabaseConnector {
private static final String DB_NAME = "MyNotes";
public static final String TABLE_NAME = "tablenotes";
public static final String TITLE = "title";
public static final String NOTE = "note";
public static final String ID = "_id";
public static final int DATABASE_VERSION = 1;
private SQLiteDatabase database;
private DatabaseHelper dbOpenHelper;
public DatabaseConnector(Context context){
dbOpenHelper = new DatabaseHelper(context , DB_NAME , null ,DATABASE_VERSION);
}
public void open(){
database = dbOpenHelper.getWritableDatabase();
}
// databse close
public void close(){
if (database!=null){
database.close();
}
}
// insert data into database
public void insertData(String title, String note){
ContentValues contentValues = new ContentValues();
contentValues.put(TITLE , title);
contentValues.put(NOTE , note);
open();
database.insert(TABLE_NAME, null, contentValues);
close();
}
public void updateData( long id, String title, String note){
ContentValues contentValues = new ContentValues();
contentValues.put(TITLE , title);
contentValues.put(NOTE, note);
open();
database.update(TABLE_NAME, contentValues, ID + "=" + id, null);
close();
}
public void deletData(long id)throws SQLException{
open();
database.delete(TABLE_NAME, ID + "=" + id, null);
close();
}
// get all notes
public Cursor listAllNotes(){
return database.query(TABLE_NAME, new String[]{ID , TITLE}, null , null , null , null ,null);
}
/// get a single note
public Cursor getOneNote(long id){
return database.query(TABLE_NAME, null, ID+"="+id, null, null,null,null);
}
}
When i run this code Log cat show me a error in MainActivity.java class. In this line Cursor cursor = databaseConnector.listAllNotes();
How i can solve this issue?
Aucun commentaire:
Enregistrer un commentaire