Прежде всего, простите меня, если это глупый вопрос, потому что я относительно новичок в этой области. Итак, у меня есть activity
, который содержит фрагмент. Этот фрагмент имеет три кнопки. И когда щелкнули любую из этих кнопок, я хотел отобразить конкретный Toast messages
. Я использовал метод onClick()
, который отлично работает в действии. Но когда я использую то же самое во фрагменте, приложение падает. Пожалуйста, помогите мне в этом вопросе. Именом деятельности является «User.java», а его XML-файл - «activity_user.xml». Имя фрагмента «user_home.java» и его xml-файл «user_home_layout.xml».
Я приложил два изображения, первый содержит действие и его XML-файл, а второй - фрагмент и его sml-файл.Как отобразить тост-сообщение при нажатии кнопки в фрагменте?
ответ
Вы должны установить пользовательские OnClickListener к кнопке:
yourButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getActivity(), "your toast text", Toast.LENGTH_LONG).show();
}
});
Это сработало. Благодаря тонну! –
Вы вмятина кнопку найти в вашем фрагменте,
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.user_home_layout, container, false);
btn1=(Button)view.findViewById(R.id.GOT);
btn2=(Button)view.findViewById(R.id.SH);
btn3=(Button)view.findViewById(R.id.TD);
return view;
}
, а затем реализовать и в тосте просто используйте getActivity()
Toast.makeText(getActivity(), "Game Of Thrones", Toast.LENGTH_SHORT).show();
реализовать метод
public void ButtonClick(View v) {
switch(v.getId()) {
case R.id.GOT:
Toast.makeText(getActivity(), "Game of Thornes", Toast.LENGTH_LONG).show();
break;
case R.id.SH:
Toast.makeText(getActivity(), "Sherlock", Toast.LENGTH_LONG).show();
break;
case R.id.TD:
Toast.makeText(getActivity(), "True Detective", Toast.LENGTH_LONG).show();
break;
}
}
В вашей деятельности:
Toast.makeText(YourActivity.this, "your message", Toast.LENGTH_SHORT).show();
В вашем фрагменте:
Toast.makeText(this.getActivity(), "your message", Toast.LENGTH_SHORT).show();
Изменение используемого контекста не будет устранять проблему пользователя –
@TonyMathew, добро пожаловать в Android мире. Ваша реализация ButtonClick неверна. This - это обширное учебное пособие по использованию фрагментов. Также есть пример обработки событий кликов. Короче говоря, вам нужно найти свои кнопки в макете xml по id. НЕ ИСПОЛЬЗУЙТЕ ТЕКСТ КНОПКИ!
Пожалуйста, найдите в Интернете информацию, прежде чем размещать вопрос здесь. Скорее всего, вы найдете то, что ищете!
P.S. Обычно в Java вы должны назвать ваш класс следующим образом: ClassName.java и не class_name.java
Прежде всего хочу отметить, что этот ответ должен быть определенно комментарием, а второй - тем, что нет проблемы с поиском кнопки по имени. –
@Todor Kostov: Дело в том, что я очень сильно смущен при обработке щелчков кнопок. –
@lulian Popescu, прежде всего, ответ не должен быть комментарием, основанным на том, что он предоставляет полезную информацию по этому вопросу, а во-вторых - возникает большая проблема при использовании метки кнопки для идентификации. Что произойдет, если вы попытаетесь локализовать свое приложение? Если у вас есть следующий «Продолжить» (английский) и «Продължи» (болгарский перевод) в качестве текста для той же кнопки, ваша логика не будет работать! –
Просто поместите getActivity() в контексте makeText(), как это:
Toast.makeText(getActivity(), "Your message", Toast.LENGTH_SHORT).show();
Использование 'getActivity' изменяет только используемый контекст, а не решает проблему –
Проблема в том, что ваш метод не найден в активности, и поэтому возникает исключение (методы из фрагментов здесь не учитываются).Чтобы исправить это у вас есть 2 варианта:
- Перенести метод
ButtonClick
активности и сделать некоторые небольшие изменения (вы должны получить в другом образомContext
) и сохранить XML-файл то же самое; - Комплект
onClickListener
для кнопки и ручкиonClick
событие внутри слушателя.
- 1. Ошибка приложения при нажатии кнопки на фрагменте
- 2. Как отобразить сообщение при первом нажатии кнопки?
- 3. Как отобразить содержимое вкладки при нажатии кнопки
- 4. Как отобразить текст при нажатии кнопки
- 5. Как отобразить область текста при нажатии кнопки?
- 6. Как запустить код при нажатии кнопки в андроидном фрагменте
- 7. Как открыть фрагмент при нажатии кнопки на фрагменте в Android
- 8. не может отобразить JOptionPane При нажатии кнопки
- 9. Невозможно отобразить всплывающее окно при нажатии кнопки
- 10. Как отобразить диалоговое окно в реальном времени при нажатии кнопки?
- 11. Как отобразить текстовый файл при нажатии кнопки в html
- 12. Как отобразить частичный вид при нажатии кнопки в MVC4?
- 13. Как отобразить значение в div при нажатии кнопки?
- 14. Как отобразить ArrayList в TextView при нажатии кнопки?
- 15. кнопка в фрагменте не работает при нажатии
- 16. Эта ошибка возникает при нажатии кнопки во фрагменте
- 17. Принудительное закрытие при нажатии кнопки назад на фрагменте
- 18. обновление TextView в фрагменте A при нажатии кнопки в фрагменте B
- 19. Javascript: как отобразить следующее значение массива при нажатии кнопки
- 20. Как отобразить диалоговое окно предупреждения при нажатии кнопки «Домашнее устройство»?
- 21. Как отобразить введенный пароль при нажатии кнопки «?» Кнопка
- 22. Как скрыть контейнер при нажатии кнопки и отобразить форму?
- 23. Как сохранить рисунок холста и отобразить его при нажатии кнопки
- 24. Как отобразить диалоговое окно при нажатии кнопки другого диалогового окна?
- 25. Как отобразить диалоговое окно загрузки при нажатии кнопки
- 26. Как отобразить другой текст из edittext при нажатии кнопки?
- 27. Как отобразить пользовательское диалоговое окно при нажатии кнопки
- 28. Как отобразить информацию для строки при нажатии кнопки внутри UITableViewCell
- 29. Как предотвратить вызов onCreateView при нажатии кнопки назад в фрагменте в android
- 30. Как отобразить AlertDialog в фрагменте?
Не могли бы вы опубликовать трассировку стека приложения при столкновении? – NitroNbg
Для краха может быть по крайней мере две возможные причины. 1) 'buttonInFragment = (Button) view.findViewById (R.id.buttonInFragment);' 'buttonInActivity = (Button) findViewById (R.id.buttonActivity);' 'Toast.makeText (MainActivity.this," Toast for (toast.Length_Short) .show() ' –
@NitroNbg: Это ошибка, которую я получаю: 'toast.Length_Short. java.lang.IllegalStateException: Не удалось найти метод ButtonClick (View) в родительском или предком Контекст для android: атрибут onClick, определенный в классе вида android.support.v7.widget.AppCompatButton с идентификатором 'GOT' ' –