Использование Theme Dialog Layout и XML-строк - PullRequest
0 голосов
/ 28 сентября 2011

У меня есть макет, main.xml.При нажатии кнопки describeButton открывается новый макет theme.dialog с именем checklist.xml.На checklist.xml пользователям предоставляется ряд флажков, которые они могут использовать для описания изображения.После того, как они установят столько флажков, сколько пожелают, они могут нажать okButton, чтобы вернуться к макету main.xml.

Итак, вот мои вопросы:

  • Как снять флажки, выбранные пользователями, преобразовать выбранные элементы в строку и сохранить ее в виде строки в файле strings.xml?

  • Как мне кодироватьokButton на checklist.xml, чтобы закрыть макет, который, в свою очередь, вернет пользователям значение main.xml?

Спасибо за помощь.

Edit
Вот код, который я сейчас использую:

public class Descriptor extends Activity {

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.checklist);

        final CheckBox checkBox1 = (CheckBox) findViewById(R.id.checkBox1);



        Button selOK = (Button) findViewById(R.id.selectOK);
        selOK.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                 if (checkBox1.isChecked()) {
                     // add a string to an existing string in strings.xml
                 }
                 // repeat this if statement for all checkboxes

                 // execute something to close this layout
            }
        });
    }
}

1 Ответ

1 голос
/ 28 сентября 2011

Вы говорите о res/values/strings.xml?После компиляции APK вы не можете изменять файлы XML.Во время компиляции файлы XML используются для генерации файла R.java, который является реализацией Java ваших файлов XML.Эти файлы являются фактическим источником Java, который вы не можете изменить или изменить.

Один из способов добиться того, что, как я думаю, вы пытаетесь сделать, - это прикрепить слушатель к флажкам, а затем отслеживать, когда пользователь проверяетили снимает флажокВот пример диалога с переключателями из Документов Android для диалогов .Преобразовать в флажки должно быть довольно просто, используя builder.setMultiChoiceItems вместо builder.setSingleChoiceItems.На самом деле здесь есть ссылка на метод multiChoiceItems doc .

final CharSequence[] items = {"Red", "Green", "Blue"};

AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Pick a color");
builder.setSingleChoiceItems(items, -1, new DialogInterface.OnClickListener() {
    public void onClick(DialogInterface dialog, int item) {
        Toast.makeText(getApplicationContext(), items[item], Toast.LENGTH_SHORT).show();
    }
});
AlertDialog alert = builder.create();

Что касается вашего второго вопроса, ваш OkButton может просто закрыть диалоговое окно.В вашей основной деятельности вы можете установить массив логических значений с одним логическим значением для каждой строки, которую вы собираетесь отображать.Затем в вашем методе onClick можно изменить отдельные логические значения, в зависимости от того, какие флажки установлены.Затем, когда диалоговое окно закрывается, вы можете просмотреть массив логических значений, чтобы увидеть, какие флажки установлены пользователями.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...