addListenerOnButton не работает с фрагментами в студии andriod - PullRequest
1 голос
/ 12 февраля 2020

Это фрагмент кода, и я пробовал различные способы реализации прослушивателя кнопок, но ни один из них не работает. Я пробовал addListenerOnbutton, метод OnClick, а также пытался использовать этот код в основной деятельности. Но на самом деле ни один из них не сработал. Любое предложение может мне сильно помочь.

   public class tab2 extends Fragment implements View.OnClickListener{

    Button b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,b15,b16,b17,b18,b19;
    View view;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {


        addListenerOnButton();

        // Inflate the layout for this fragment
        return inflater.inflate(R.layout.fragment_tab2, container, false);
    }

    void addListenerOnButton(){

        /*b1 = getView().findViewById(R.id.b1);
        b1.setOnClickListener(new View.OnClickListener() {
                                  @Override
                                  public void onClick(View v) {
                                      System.out.println("Error has occurred");
                                  }
                              });*/
       /* b1 = getView().findViewById(R.id.b1);
        b3 = getView().findViewById(R.id.b3);
        b4 = getView().findViewById(R.id.b4);
        b5 = getView().findViewById(R.id.b5);
        b6 = getView().findViewById(R.id.b6);

        b1.setOnClickListener(this);
        b3.setOnClickListener(this);
        b4.setOnClickListener(this);
        b5.setOnClickListener(this);
        b6.setOnClickListener(this);*/
    }


    public void Activity1()
    {
        Intent intent = new Intent(getContext(),Activity1.class);
        startActivity(intent);
    }

   ....... until Activity19().....
    @Override
    public void onClick(View v)
    {
        /*switch (v.getId()){
            case R.id.b1:
                Activity1();
                break;
            case R.id.b3:
                Activity3();
                break;
            case R.id.b4:
                Activity4();
                break;
            case R.id.b5:
                Activity5();
                break;
            case R.id.b6:
                Activity6();
                break;
        }*/

    }
}

1 Ответ

0 голосов
/ 12 февраля 2020

попробуйте что-то вроде этого

public class BlankFragment extends Fragment implements View.OnClickListener {

private Button b1, b2;

@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);
    b1 = view.findViewById(R.id.b1);
    b2 = view.findViewById(R.id.b2);

    b1.setOnClickListener(this);
    b2.setOnClickListener(this);
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    return inflater.inflate(R.layout.fragment_blank, container, false);
}

private void callActivity(Class activity) {
    startActivity(new Intent(getContext(), activity));
}

@Override
public void onClick(View view) {
    switch (view.getId()) {
        case R.id.b1:
            callActivity(FirstActivity.class);
            break;
        case R.id.b2:
            callActivity(SecondActivity.class);
            break;
    }
}
...