java - addListener 按钮在 android studio 中的 fragment 中不起作用

标签 java android tabs onclicklistener buttonclick

这是 fragment 代码,我在这里尝试了各种方法来实现按钮监听器,但没有一个起作用。我尝试过 addListenerOnbutton、OnClick 方法,并尝试在 mainactivity 中使用此代码。但它们都没有真正起作用。任何建议都可以对我有很大帮助。

   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;
        }*/

    }
}

最佳答案

尝试这样的事情

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

关于java - addListener 按钮在 android studio 中的 fragment 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60180329/

相关文章:

Android - 具有 CHIPS 风格的自定义选项卡布局?

java - JNA从java调用没有源代码的DLL

java - 应用关闭时的Android调用功能

xcode - Xcode 中的基本 Control-TAB (MRU) 行为在哪里?

google-chrome-extension - 找到结果后如何使选项卡和窗口处于事件状态?

android - 打开应用程序时,Firebase 在 addListenerForSingleValueEvent 上崩溃

java - 在java中替换字符串的有效方法

java - 在异常 block 中处理异常

java - 如何将微调器下拉值转换为整数

java - 无法按升序对列表进行排序