#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);
}
}
});
}
}