package com.pledgeapps.buyingtime; import android.content.Intent; import android.os.Bundle; import android.support.v7.app.ActionBarActivity; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.ListView; import android.widget.AdapterView; import com.pledgeapps.buyingtime.utils.AlarmHelper; public class AlarmsActivity extends ActionBarActivity { ListView alarmList; AlarmListAdapter alarmListAdapter; private static final int ACTIVITY_EDITALARM=110; private void saveData() { AlarmHelper.getCurrent().updateAlarms(getApplicationContext()); } private void selectAlarm(int alarmIndex) { Bundle bundle = new Bundle(); bundle.putInt("ALARM_INDEX", alarmIndex); Intent intent = new Intent(this, AlarmActivity.class); intent.putExtras(bundle); startActivityForResult(intent, ACTIVITY_EDITALARM); } protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_alarms); alarmList = (ListView) findViewById(R.id.alarmList); alarmList.setOnItemClickListener(new ListView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> a, View v, int position, long id) { selectAlarm(position); } }); alarmListAdapter = new AlarmListAdapter(this); alarmList.setAdapter(alarmListAdapter); } @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); alarmListAdapter.notifyDataSetChanged(); } @Override public void onPause() { new Thread(new Runnable() { public void run() { saveData(); } }).start(); super.onPause(); } @Override protected void onResume() { super.onResume(); alarmListAdapter.notifyDataSetChanged(); } @Override public boolean onCreateOptionsMenu(Menu menu) { super.onCreateOptionsMenu(menu); getMenuInflater().inflate(R.menu.alarms, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.action_add_alarm: selectAlarm(-1); } return super.onOptionsItemSelected(item); } }