Мне было интересно, есть ли способ вызвать одно и то же действие для разных кнопок, но делать разные вещи для каждого.
Конкретнее .. У меня есть один вид деятельности с примерно 10 кнопками на нем, и если я делаю это традиционно, каждый раз, когда я нажимаю кнопку, мне нужно создать действие для каждого из них, и в результате у меня будет более 15 java-файлов.
Итак, я был интересно, есть ли какие-либо способы, все кнопки, показывают одну и ту же активность (что легко, я буду «намеренно» показывать ту же активность), но на этом мероприятии, в зависимости от кнопки, я нажимаю, выполняю разные действия.
Например, все кнопки отображаются на Buttons.java, но внутри есть TextView и каждый раз показывается другой текст, в зависимости от кнопок, которые я нажимаю -> Text1 (для кнопки 1), Text2 (для Button2), Text3 (для Button3) ...
Есть ли у вас идеи? Спасибо!!Android: та же деятельность для разных кнопок, но разные действия
ответ
Вы можете передать некоторую информацию активности, когда вы хотите, чтобы запустить его ... например:
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(getContext(), ExampleActivity.class);
//There is no limit for number of Extras you want to pass to activity
intent.putExtra("buttonNumber", 1);
startActivity(intent);
}
});
ExampleActivity.java
public class ExampleActivity extends Activity {
int pressedButtonNumber;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_add_poll);
pressedButtonNumber = getIntent().getExtras().getInt("buttonNumber");
switch(pressedButtonNumber){
case 1:
//Do Something for clicking button 1 scenario
break;
}
}
Большое спасибо за пример !!! Первая часть, она отлично работает, каждая кнопка посылает меня к одной и той же деятельности ... К сожалению, вторая часть, у меня есть две ошибки. Первая - на «switch (buttonNumber)», где говорится, что cannpt resorlve symbole ' buttonNumber ', а другой - на номере 1, где говорится: «Требуется постоянное выражение». У вас есть идеи? Спасибо!! –
Я нашел его ... Вы, возможно, не видели его, это не переключатель (buttonNumber), а переключатель (нажалButtonNumber) .... когда я исправляю это, все решено !!! Большое спасибо!! –
@nigi Я не писал эти коды в IDE, поэтому я не заметил, что есть проблема ... Я исправлю это ... и ваш прием;) – K2evil
- 1. та же логика в разных идентификаторах кнопок
- 2. та же деятельность другой listview
- 3. Вид списка открывается та же самая деятельность
- 4. Та же модель, разные шаблоны (и действия) в extbase extension
- 5. Та же деятельность, что и укладывается
- 6. Называется одна и та же деятельность в нескольких классах -Android
- 7. Блокировка для разных методов, но одна и та же переменная
- 8. AngularJS: та же логика, но разные формы HTML и база данных для разных проектов/клиентов
- 9. Та же переменная сеанса для разных систем
- 10. та же переменная возврата для разных функций
- 11. Переменная Javascript, разные значения, та же строка
- 12. Открыть различные действия для разных нажатий кнопок
- 13. та же страница, разные URL. перенаправление?
- 14. Та же математическая логика, разные результаты?
- 15. Та же функция в JavaScript и PHP, но разных выходах
- 16. Ищет совпадения: та же переменная, разные таблицы
- 17. Android: Используйте разные строки для разных приложений.
- 18. Android начинает ту же деятельность, но закрывает предыдущую.
- 19. Общие действия для разных объектов
- 20. книги api одна и та же книга разные языки
- 21. Как мне вызвать разные действия для разных экземпляров одного и того же диалогового окна jquery?
- 22. ANDROID - 2 разных намерения открывает ту же самую деятельность
- 23. та же высота строки для вложенных таблиц в разных столбцах
- 24. logback та же временная метка для разных журналов
- 25. та же позиция css разные результаты в diff-браузерах
- 26. Android Layout для разных кнопок ширины
- 27. Почему одна и та же функция выполняет две разные вещи?
- 28. Curl - те же действия, разные результаты?
- 29. Стандарт для Android Деятельность
- 30. То же приложение, одна и та же ОС, но разные элементы пользовательского интерфейса в OS X
Ваша основная деятельность, как вы описываете это имеет список кнопок , Когда нажимается кнопка, вы получаете новое представление (например, с текстом «Textview»), которое должно быть новым «Activity» или тем же действием, но другим «Fragment». Чтобы передать другой текст в случае нового действия, вы должны использовать 'intent.putExtra() '. Если вы используете 'Fragment', вы должны использовать' fragment.setArguments() ' –