Android 我能';t从具有2个按钮的片段创建新的意图/活动

Android 我能';t从具有2个按钮的片段创建新的意图/活动,android,android-intent,android-button,Android,Android Intent,Android Button,我试图从一个有两个按钮的片段中创建一个新的活动。这个按钮出现在模拟器上,但当我点击它时,它什么也没做。我在网上学习了很多教程,但大多数都只需按一个按钮就可以完成onClickListener。对不起,我是android开发新手 public class UserFragment extends Fragment implements View.OnClickListener { Activity context = getActivity(); @Nullable @O

我试图从一个有两个按钮的片段中创建一个新的活动。这个按钮出现在模拟器上,但当我点击它时,它什么也没做。我在网上学习了很多教程,但大多数都只需按一个按钮就可以完成
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;

        }

    }
}

更新:我已尝试按照中的答案进行操作,但没有解决问题。

您应该为按钮设置
onClickListener
。您可以在自己的系统中实现此接口
Frgamnet,因此您应该在
onCreateView()
方法中将
this
设置为侦听器

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

您是否在xml中设置了
onClick
事件?第一种情况下,您正在定义您的意图moveIntent,但第二种情况下,您没有?@MohammedHanif.no我没有。我如何设置它?我应该将
onclick
事件、目标或我当前所在的片段放在哪个xml中?@DanBaruch我首先定义了它,但似乎我不必在第二个案例中定义它,因为它在android studio上显示了一些错误:/Tbh,我只需在切换案例之前定义它(并给它null值),在开关内部,只需分配它的值,在整个开关案例之后,只要调用startActivity,假设它不为空,就会为您节省一些代码行。我尝试过,但应用程序突然关闭。以下是android studio上的错误:抱歉,我粘贴到这里的时间太长,所以我创建了一个pastebin文件。似乎将intent方法中的上下文变量更改为
getActivity()
解决了问题!感谢您告诉我设置
onClickListener()
方法!