首页 > 解决方案 > 我无法从具有 2 个按钮的片段中创建新的意图/活动

问题描述

我正在尝试从具有 2 个按钮的片段中创建一个新活动。该按钮出现在模拟器上,但是当我单击它时,它什么也没做。我已经在网上学习了很多教程,但其中大多数都是onClickListener在一个按钮上完成的。对不起,我是android开发的新手。

public class UserFragment extends Fragment implements View.OnClickListener {
    Activity context = getActivity();

    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View v = inflater.inflate(R.layout.fragment_user, container, false);

        Button register = v.findViewById(R.id.btnAkunRegister);
        Button login = v.findViewById(R.id.btnAkunLogin);

        return v;
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()){
            case R.id.btnAkunLogin:
                Intent moveIntent = new Intent(context, LoginActivity.class);
                startActivity(moveIntent);
                break;

            case R.id.btnAkunRegister:
                moveIntent = new Intent(context, RegisterActivity.class);
                startActivity(moveIntent);
                break;

        }

    }
}

更新:我已经尝试按照stackoverflow的答案,但它并没有解决问题。

标签: androidandroid-intentandroid-button

解决方案


你应该onClickListener为你的按钮设置。您在
Frgamnet 中实现此接口,因此您应该在方法中设置this为侦听器。onCreateView()

 public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    View v = inflater.inflate(R.layout.fragment_user, container, false);

    Button register = v.findViewById(R.id.btnAkunRegister);
    Button login = v.findViewById(R.id.btnAkunLogin);
    //set listener
    register.setOnClickListener(this);
    login.setOnClickListener(this);
     
    return v;
}

推荐阅读