Android: тот же OnClickListener на многих кнопках - PullRequest
0 голосов
/ 21 января 2019

Я пытаюсь установить один и тот же OnClickListener для многих кнопок на одном фрагменте.

Поэтому я попытался сделать слушателя лучшим в классе, например

public class SigninUserInsurance extends Fragment {

       Button.OnClickListener thisListener = new Button.OnClickListener(){
             @Override
             public void onClick(View v){
                    .....
             }
       }

Однако яхотите сохранить текст кнопки.(button.getText ()).

Но в разделе ...,

, поскольку у thisListener нет кнопки ведьмы, и он только получает представление,

Я не могу вызвать getText ().v.getText () не существует.

Например, я попробовал свой код в ... разделе следующим образом:

 preferenceEditor.putString("User Insurance", Button.getText());
 preferenceEditor.commit();
 activity.fragChanger(4);

В первой строке Button.getText () не может быть вызван, потому что thisListener делает

нет информации о кнопке.

Есть ли способ без реализации каждой кнопки 10 ~ 20 каждый собственный слушатель ??

1 Ответ

0 голосов
/ 21 января 2019

Вы можете определить объект слушателя следующим образом:

  View.OnClickListener thisListener = new View.OnClickListener() {
    public void onClick(View v) {
        Button button = (Button) v;
        switch (v.getId()) {
            case R.id.button1:
                 preferenceEditor.putString("User Insurance", button.getText());
                 preferenceEditor.commit();
                 activity.fragChanger(4); 
                 break;
            case R.id.button2:
                // 
                break;
            //...............
        } 
    }
  }

и установите этот слушатель на все ваши кнопки:

button1.setOnClickListener(thisListener);
button2.setOnClickListener(thisListener);
..........................................
...