繁体   English   中英

三个按钮,每个按钮以不同的Int启动相同的Activity。 但是,当选择任何按钮时,它将加载所有3个活动

[英]Three buttons, each start the same Activity with a different Int. But when selecting any button, it loads all 3 Activities

我正在编写作业,并且已经运行了核心功能,但是对此我感到很困惑。 我在此“活动/片段”上有3个按钮,每个按钮都向一个新的“活动”发送一个“意图”,并使用不同的整数来设置主游戏的速度。

按钮1将速度设置为10,按钮2将速度设置为30,按钮3将速度设置为50。但是,无论我单击哪个按钮,它都首先以速度50启动活动,然后在该活动结束时以速度启动30,然后再以速度10再启动。它实际上是在循环并开始所有可能的活动,但是我只希望所选的一项开始。

应用

就我所知,这就是代码。

public class LevelsFragment extends Fragment implements OnClickListener {

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{    
    View rootView = inflater.inflate(R.layout.fragment_levels, container, false);

    Button b1 = (Button)rootView.findViewById(R.id.button1);
    Button b2 = (Button)rootView.findViewById(R.id.button2);
    Button b3 = (Button)rootView.findViewById(R.id.button3);
    b1.setOnClickListener(this);
    b2.setOnClickListener(this);
    b3.setOnClickListener(this);

    return rootView;
}

@Override
public void onClick(View v) {
    switch (v.getId())
    {
        case R.id.button1:
            Intent i1 = new Intent(getActivity(), GameActivity.class);
            i1.putExtra("s", 10);
            startActivity(i1);
        case R.id.button2:
            Intent i2 = new Intent(getActivity(), GameActivity.class);
            i2.putExtra("s", 30);
            startActivity(i2);
        case R.id.button3:
            Intent i3 = new Intent(getActivity(), GameActivity.class);
            i3.putExtra("s", 50);
            startActivity(i3);
    }       
}
}

您忘记在switch语句中放个break

switch (v.getId())
    {
        case R.id.button1:
            Intent i1 = new Intent(getActivity(), GameActivity.class);
            i1.putExtra("s", 10);
            startActivity(i1);
            break;
        case R.id.button2:
            Intent i2 = new Intent(getActivity(), GameActivity.class);
            i2.putExtra("s", 30);
            startActivity(i2);
            break;
        case R.id.button3:
            Intent i3 = new Intent(getActivity(), GameActivity.class);
            i3.putExtra("s", 50);
            startActivity(i3);
            break;
    }       

这是经典,你忘了break; 在不同情况之间。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM