Reputation: 839
I have the following code implemented in an Activity Class. Meanwhile, the Application crashes upon launching it.
What am I missing?
public class MainActivity extends AppCompatActivity implements LoaderManager.LoaderCallbacks<Object> {
private ListView obj;
DBHelper mydb;
SimpleCursorAdapter dataAdapter;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Cursor rs = mydb.getAllAlarms();
startManagingCursor(rs);
String[] from = new String[]{"name"};
int[] to = new int[]{R.id.alarm_name};
dataAdapter = new SimpleCursorAdapter(this, R.layout.listview_row, rs, from, to, 0);
obj = (ListView)findViewById(R.id.listViewAlarms);
obj.setAdapter(dataAdapter);
getSupportLoaderManager().initLoader(0, null, this);
obj.setOnItemClickListener(new OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
//obj.getItemAtPosition(arg2);
// TODO Auto-generated method stub
String itemVal =(String) arg0.getItemAtPosition(arg2);
Bundle dataBundle = new Bundle();
dataBundle.putString("name", itemVal);
Intent intent = new
Intent(getApplicationContext(),DisplayAlarm.class);
intent.putExtras(dataBundle);
startActivity(intent);
}
});
}
Upvotes: 0
Views: 63
Reputation: 6363
You haven't put the cursor in your adapter. Change your code from this
dataAdapter = new SimpleCursorAdapter(getBaseContext(), R.layout.listview_row,
null, new String[] { mydb.ALARMS_COLUMN_NAME, mydb.ALARMS_ACTIVATED},
new int[] { R.id.alarm_name, R.id.alarm_activated }, 0);
to
dataAdapter = new SimpleCursorAdapter(getBaseContext(), R.layout.listview_row,
rs, new String[] { mydb.ALARMS_COLUMN_NAME, mydb.ALARMS_ACTIVATED},
new int[] { R.id.alarm_name, R.id.alarm_activated }, 0);
Also, instead of using mydb.ALARMS_COLUMN_NAME, mydb.ALARMS_ACTIVATED
, just pass the column names.
Upvotes: 1