Сохранить значения, выбранные в AlertDialog - PullRequest
0 голосов
/ 14 июля 2011

Как сохранить выбранное значение?

 private final CharSequence[] mColors = {"1", "2", "3", "4", "5" , "6"};

  switch (id) {
    case w_COLOR:

        final AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setTitle("Тест");
        builder.setSingleChoiceItems(mColors, 0, new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int item) {

                mResult = item;


            }
        });
        builder.setPositiveButton("Ок", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int id) {
                Toast.makeText(getApplicationContext(), "ITEM: " + mColors[mResult], Toast.LENGTH_LONG).show();
                if (mResult == 0)
                {

                    Parameters params = camera.getParameters();
                    params.setFlashMode(Parameters.FLASH_MODE_ON);
                    camera.setParameters(params);

                    camera.autoFocus(autoFocusCallback);
                }

                if (mResult == 1)
                {

                    Parameters params = camera.getParameters();
                    params.setFlashMode(Parameters.FLASH_MODE_OFF);
                    camera.setParameters(params);

                    camera.autoFocus(autoFocusCallback);

                }
                if (mResult == 2)
                {
                    Parameters params = camera.getParameters();
                    params.setFlashMode(Parameters.FLASH_MODE_ON);
                    camera.setParameters(params);

                }
                if (mResult == 3)
                {
                    Parameters params = camera.getParameters();
                    params.setFlashMode(Parameters.FLASH_MODE_OFF);
                    camera.setParameters(params);

                }

                if (mResult == 4)
                {
                    Parameters params = camera.getParameters();
                    params.setFlashMode(Parameters.FLASH_MODE_TORCH);
                    camera.setParameters(params);
                    camera.autoFocus(autoFocusCallback);
                }

                if (mResult == 5)
                {
                    Parameters params = camera.getParameters();
                    params.setFlashMode(Parameters.FLASH_MODE_TORCH);
                    camera.setParameters(params);

                }

1 Ответ

0 голосов
/ 14 июля 2011

Установить переменную. Например, я переворачиваю логическое значение в этом вызове:

saveDialog.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface dialog, int whichButton) {
    // Save the record, then flip editMode and change updating
    // editable
    Log.i(TAG, "Save requested. Saving...");
    updateRecord();
    editMode = !editMode;
    titlebar.setText(editMode ? EDIT_TITLE : VIEW_TITLE);
    updateEditable(editMode);
    recordUpdated = false;
    String ems = editMode ? "ON" : "OFF";
    Log.i(TAG, "Switching edit mode "+ems);
    }
}); 

Кроме того, вам, вероятно, следует либо переключить структуру if на структуру if...else if... else, либо switch (case), как вы делали выше. Как и сейчас, если щелкнуть этот setPositiveButton, вы проверяете каждый оператор if, и все они взаимоисключающие. Вы также можете вытащить Parameters params = camera.getParameters(); за пределы структуры if, поскольку она вызывается каждый раз.

...