2017-01-22 8 views
0

Мне было интересно, есть ли способ вызвать одно и то же действие для разных кнопок, но делать разные вещи для каждого.
Конкретнее .. У меня есть один вид деятельности с примерно 10 кнопками на нем, и если я делаю это традиционно, каждый раз, когда я нажимаю кнопку, мне нужно создать действие для каждого из них, и в результате у меня будет более 15 java-файлов.
Итак, я был интересно, есть ли какие-либо способы, все кнопки, показывают одну и ту же активность (что легко, я буду «намеренно» показывать ту же активность), но на этом мероприятии, в зависимости от кнопки, я нажимаю, выполняю разные действия.

Например, все кнопки отображаются на Buttons.java, но внутри есть TextView и каждый раз показывается другой текст, в зависимости от кнопок, которые я нажимаю -> Text1 (для кнопки 1), Text2 (для Button2), Text3 (для Button3) ...

Есть ли у вас идеи? Спасибо!!Android: та же деятельность для разных кнопок, но разные действия

+0

Ваша основная деятельность, как вы описываете это имеет список кнопок , Когда нажимается кнопка, вы получаете новое представление (например, с текстом «Textview»), которое должно быть новым «Activity» или тем же действием, но другим «Fragment». Чтобы передать другой текст в случае нового действия, вы должны использовать 'intent.putExtra() '. Если вы используете 'Fragment', вы должны использовать' fragment.setArguments() ' –

ответ

2

Вы можете передать некоторую информацию активности, когда вы хотите, чтобы запустить его ... например:

 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; 
    } 
} 
+0

Большое спасибо за пример !!! Первая часть, она отлично работает, каждая кнопка посылает меня к одной и той же деятельности ... К сожалению, вторая часть, у меня есть две ошибки. Первая - на «switch (buttonNumber)», где говорится, что cannpt resorlve symbole ' buttonNumber ', а другой - на номере 1, где говорится: «Требуется постоянное выражение». У вас есть идеи? Спасибо!! –

+0

Я нашел его ... Вы, возможно, не видели его, это не переключатель (buttonNumber), а переключатель (нажалButtonNumber) .... когда я исправляю это, все решено !!! Большое спасибо!! –

+0

@nigi Я не писал эти коды в IDE, поэтому я не заметил, что есть проблема ... Я исправлю это ... и ваш прием;) – K2evil

Смежные вопросы