Как загрузить макет внутри другого при нажатии и изменении функции кнопки?

#android #function #button #layout #click

#Android #функция #кнопка #макет #нажмите

Вопрос:

Я пытаюсь сделать что-то вроде этого:

Ожидается:

Когда я перехожу к этому действию, у меня есть то, что выделено черным цветом, и некоторые объекты, такие как поля редактирования текста.

Как только я нажимаю кнопку, я хочу, чтобы эти поля редактирования и другие материалы, которые там находятся, оставались видимыми, но не могли быть отредактированы (это легко сделать из кода, переопределяющего onClick).

Но в то же время я также хочу загрузить некоторый макет внутри того же действия (из xml) и изменить функцию кнопки, чтобы она действовала над объектами нового макета.

Кто-нибудь может дать мне представление о том, как сделать эти две вещи, оставаясь в одном и том же действии?

Обновить:

 public void createButton(){
    create_button.setOnClickListener(
            new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    editText1.setEnabled(false);
                    editText2.setEnabled(false);

                    hidden_layout.setVisibility(View.VISIBLE);
                    create_button.setText("New text");


                }
            });
}
 

При первом нажатии я хочу, чтобы кнопка это сделала. Но как только он нажат, я хочу, чтобы он сделал другое. Как я мог это сделать?

Ответ №1:

(это легко сделать из кода, переопределяющего onClick).

На самом деле я бы рекомендовал включить или отключить, что легче отслеживать с помощью

 view.setEnabled(bool);
 

что касается другого вопроса, я бы рекомендовал добавить макет с самого начала, установив видимость на ИСЧЕЗНУВШУЮ, а при необходимости установить видимость на ВИДИМУЮ

  view.setVisibility(View.VISIBLE);
 view.setVisibility(View.GONE);
 

Комментарии:

1. Спасибо, делая то, что вы мне только что сказали, я решил проблему с макетом и не смог открыть верхнюю часть, но я все еще не мог решить проблему изменения функции кнопки:

2. public void createButton(){ create_button.setOnClickListener( новый вид. OnClickListener() { @Override public void onClick(View v) { edittext1.setEnabled(false); editText2.setEnabled(false); create_button . setEnabled(false); hidden_layout.setVisibility(Просмотр. ВИДИМЫЙ); } }); }

3. Извините, я этого до сих пор не видел, рад, что смог помочь

Ответ №2:

Хорошо, я понял, что это был глупый вопрос, просто добавьте флаг и отредактируйте его:

 public void createButton(){
    create_button.setOnClickListener(
            new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    if (!button_pressed) {
                        editText1.setEnabled(false);
                        edittext2.setEnabled(false);
                        hidden_layout.setVisibility(View.VISIBLE);
                        create_button.setText("New text");
                        button_pressed=true;
                    }
                    else{
                        create_button.setText("Second click");
                        create_button.setEnabled(false);

                    }
                }
            });
}
 

}