1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86
| private void displayTrainStationDialog() {
Builder dialog = new AlertDialog.Builder(this, AlertDialog.THEME_TRADITIONAL);
LayoutInflater inflater = LayoutInflater.from(this);
final View trainStationDialog = inflater.inflate(R.layout.train_station_management, null);
final ListView trainStationListView = (ListView) trainStationDialog.findViewById(R.id.trainStationListView);
final Set<String> trainStationSet = CommonHelper.loadTrainStationPrefs(AdministrationActivity.this);
final ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_checked, new ArrayList<String>(
trainStationSet));
trainStationListView.setAdapter(adapter);
trainStationListView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
Button addButton = (Button) trainStationDialog.findViewById(R.id.addTrainStationButton);
Button deleteButton = (Button) trainStationDialog.findViewById(R.id.deleteTrainStationButton);
addButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
addTrainStationDialog(trainStationSet, adapter);
adapter.notifyDataSetChanged();
}
});
deleteButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
SparseBooleanArray selectedItems = trainStationListView.getCheckedItemPositions();
for (int i = 0; i < selectedItems.size(); i++) {
if (selectedItems.valueAt(i) == true) {
trainStationSet.remove(trainStationListView.getItemAtPosition(selectedItems.keyAt(i)));
adapter.notifyDataSetChanged();
}
}
}
});
dialog.setPositiveButton(getResources().getString(R.string.validate), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
CommonHelper.saveTrainStationPrefs(AdministrationActivity.this, trainStationSet);
}
});
dialog.setNegativeButton(getResources().getString(R.string.cancel), null);
dialog.setView(trainStationDialog);
dialog.show();
}
private void addTrainStationDialog(final Set<String> trainStationSet, final ArrayAdapter<String> adapter) {
Builder dialog = new AlertDialog.Builder(this, AlertDialog.THEME_TRADITIONAL);
dialog.setTitle("Ajouter une gare");
final EditText textView = new EditText(dialog.getContext());
// Ajout listener sur le bouton Valider
dialog.setPositiveButton(getResources().getString(R.string.validate), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
if (!trainStationSet.contains(textView.getText().toString())) {
trainStationSet.add(textView.getText().toString());
adapter.notifyDataSetChanged();
}
}
});
// Listener pour utiliser la touche Entrée
dialog.setOnKeyListener(new DialogInterface.OnKeyListener() {
@Override
public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_ENTER) {
if (!trainStationSet.contains(textView.getText().toString())) {
trainStationSet.add(textView.getText().toString());
adapter.notifyDataSetChanged();
}
dialog.dismiss();
return true;
} else {
return false;
}
}
});
dialog.setNegativeButton(getResources().getString(R.string.cancel), null);
dialog.setView(textView);
dialog.show();
} |
Partager