簡體   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