Aber irgendwas ist noch verkehrt. Die neue Uhrzeit wird bei "showDialog" noch nicht hinzugefügt.
MainActivity:
C
alendar calendar;
Button btnShowDialog;
String timeString;
ArrayList alarmList;
CustomAdapter customAdapter;
ListView alarmListView;
Intent alarmIntent;
AlarmManager alarmManager;
PendingIntent pendingIntent;
SharedPreferences sharedPreferences;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
sharedPreferences = getSharedPreferences("com.example.laudien.wecker", MODE_PRIVATE);
// Initialize variables
btnShowDialog = (Button) findViewById(R.id.btnShowDialog);
calendar = Calendar.getInstance();
alarmListView = (ListView) findViewById(R.id.listView);
timeString = "";
alarmIntent = new Intent(MainActivity.this, RingService.class);
alarmManager = (AlarmManager)MainActivity.this.getSystemService(Context.ALARM_SERVICE);
// initialize ListView
Set set = sharedPreferences.getStringSet("alarmList", null);
if(set != null)
alarmList = new ArrayList(set);
else
alarmList = new ArrayList<CustomItemStructure>();
customAdapter = new CustomAdapter(MainActivity.this, alarmList, R.layout.list_view_item);
alarmListView.setAdapter(customAdapter);
}
@Override
protected void onPause() {
super.onPause();
Set set = new HashSet();
set.addAll(alarmList);
sharedPreferences.edit().putStringSet("alarmList", set).apply();
}
public void showDialog(View view){
new TimePickerDialog(MainActivity.this, new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
Calendar timeCalendar = Calendar.getInstance();
timeCalendar.set(Calendar.HOUR_OF_DAY, hourOfDay);
timeCalendar.set(Calendar.MINUTE, minute);
timeString = DateUtils.formatDateTime(MainActivity.this, timeCalendar.getTimeInMillis(), DateUtils.FORMAT_SHOW_TIME);
CustomItemStructure structure = new CustomItemStructure();
structure.alarmSwitch = true;
structure.alarmTimeInMillis = timeCalendar.getTimeInMillis();
customAdapter.add(structure);
Log.i("TimePicker", "The time was set to " + timeString);
}
}, calendar.get(Calendar.HOUR_OF_DAY), calendar.get(Calendar.MINUTE), DateFormat.is24HourFormat(MainActivity.this)).show();
}`
CustomAdapter:
p
ublic class CustomAdapter extends BaseAdapter {
Context userContext;
int layoutID;
private ArrayList<CustomItemStructure> alarmList = new ArrayList<>();
public CustomAdapter(Context context, ArrayList<CustomItemStructure> arrayList, @LayoutRes int resource) {
layoutID = resource;
userContext = context;
alarmList = arrayList;
}
@Override
public int getCount() {
return 0;
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
CustomItemStructure itemNow = alarmList.get(position);
TextView alarmTextView = (TextView) convertView.findViewById(R.id.alarmTextView);
Switch alarmSwitch = (Switch) convertView.findViewById(R.id.alarmSwitch);
alarmTextView.setText(DateUtils.formatDateTime(userContext, itemNow.alarmTimeInMillis, DateUtils.FORMAT_SHOW_TIME));
alarmSwitch.setChecked(itemNow.alarmSwitch);
return convertView;
}
public void add(CustomItemStructure item){
alarmList.add(item);
}
}`
CustomItemStructure:
p
ublic class CustomItemStructure{
public boolean alarmSwitch;
public long alarmTimeInMillis;
}`
— geändert am 16.09.2016, 08:29:57
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.