private void setSpinnerSelection(Spinner spinner) { final ArrayList<Sprite> spriteList = (ArrayList<Sprite>) ProjectManager.getInstance().getCurrentProject().getSpriteList(); if (spriteList.contains(pointedObject)) { oldSelectedObject = pointedObject.getName(); spinner.setSelection( ((SpinnerAdapterWrapper) spinner.getAdapter()) .getAdapter() .getPosition(pointedObject.getName()), true); } else { if (oldSelectedObject != null && !oldSelectedObject.equals("")) { spinner.setSelection( ((SpinnerAdapterWrapper) spinner.getAdapter()) .getAdapter() .getPosition(this.oldSelectedObject), true); } else { if (spinner.getAdapter().getCount() > 1) { spinner.setSelection(1, true); } else { spinner.setSelection(0, true); } } } }
private ArrayAdapter<String> getArrayAdapterFromSpriteList(Context context) { final ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(context, android.R.layout.simple_spinner_item); arrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); arrayAdapter.add(context.getString(R.string.new_broadcast_message)); final ArrayList<Sprite> spriteList = (ArrayList<Sprite>) ProjectManager.getInstance().getCurrentProject().getSpriteList(); for (Sprite sprite : spriteList) { String spriteName = sprite.getName(); String temp = ProjectManager.getInstance().getCurrentSprite().getName(); if (!spriteName.equals(temp) && !spriteName.equals(context.getString(R.string.background))) { arrayAdapter.add(sprite.getName()); } } return arrayAdapter; }
public void refreshSpinnerAfterNewSprite(final Context context, final String newSpriteName) { Project project = ProjectManager.getInstance().getCurrentProject(); for (Sprite sprite : project.getSpriteList()) { if (sprite.getName().equals(newSpriteName)) { pointedObject = sprite; } } setSpinnerSelection(spinner); AlertDialog dialog = new CustomAlertDialogBuilder(context) .setTitle(R.string.dialog_new_object_switch_title) .setMessage(R.string.dialog_new_object_switch_message) .setPositiveButton( R.string.yes, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { ProjectManager.getInstance().setCurrentSprite(pointedObject); Intent intent = new Intent(context, ProgramMenuActivity.class); intent.putExtra( ProgramMenuActivity.FORWARD_TO_SCRIPT_ACTIVITY, ScriptActivity.FRAGMENT_SCRIPTS); intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(intent); dialog.dismiss(); } }) .setNegativeButton( R.string.no, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { spinnerAdapter.notifyDataSetChanged(); dialog.dismiss(); } }) .create(); dialog.setCanceledOnTouchOutside(true); dialog.show(); }