如何在这段代码中添加另一个按钮?

Posted

技术标签:

【中文标题】如何在这段代码中添加另一个按钮?【英文标题】:How do I add another button to this piece of code? 【发布时间】:2015-03-11 14:13:46 【问题描述】:

我在这个播放声音文件“clubb1”的.java 文件中添加了一个名为buttonA 的按钮。如何添加其他按钮,例如 buttonB 和 buttonC 等,并将它们链接到此代码中的新声音文件,例如“clubb2”和“clubb3”?我是编码新手,因此不知道如何添加更多内容?

public class FragmentOne extends Fragment  

    SoundPool Clubb1;
    int clubb1Id;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) 
        Clubb1 = new SoundPool(10, AudioManager.STREAM_MUSIC, 1);
        clubb1Id = Clubb1.load(getActivity(), R.raw.clubb1, 1);            

        View rootView = inflater.inflate(R.layout.fragment_one_layout, container, false);

        Button buttonA = (Button) rootView.findViewById(R.id.buttonA);

        buttonA.setOnClickListener(new View.OnClickListener() 
            public void onClick(View v) 
                Clubb1.play(clubb1Id, 1, 1, 1, 0, 1);
            
        );

        return rootView;
    

【问题讨论】:

【参考方案1】:

别忘了在fragment_one_layout.xml 中添加新按钮!之后,按照 Max Vitruk 的说法,这应该可行;-)

【讨论】:

【参考方案2】:

试试这个

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) 
    Clubb1 = new SoundPool(10, AudioManager.STREAM_MUSIC, 1);
    clubb1Id = Clubb1.load(getActivity(), R.raw.clubb1, 1);
    clubb2Id = Clubb1.load(getActivity(), R.raw.clubb2, 1);
    clubb3Id = Clubb1.load(getActivity(), R.raw.clubb3, 1);

    View rootView = inflater.inflate(R.layout.fragment_one_layout, container, false);

    Button buttonA = (Button) rootView.findViewById(R.id.buttonA);
    Button buttonB = (Button) rootView.findViewById(R.id.buttonB);
    Button buttonC = (Button) rootView.findViewById(R.id.buttonC);

    View.OnClickListener ocl = new View.OnClickListener() 
        @Override
        public void onClick(View v) 

            switch (v.getId())
                case R.id.buttonA:
                    //A clicked
                    Clubb1.play(clubb1Id, 1, 1, 1, 0, 1);
                    break;
                case R.id.buttonB:
                    //B clicked
                    Clubb1.play(clubb2Id, 1, 1, 1, 0, 1);
                    break;
                case R.id.buttonB:
                    //C clicked
                    Clubb1.play(clubb3Id, 1, 1, 1, 0, 1);
                    break;                
            
        
    ;

    buttonA.setOnClickListener(ocl);
    buttonB.setOnClickListener(ocl);
    buttonC.setOnClickListener(ocl);

    return rootView;

所以只需加载更多声音。已编辑

【讨论】:

无需使用多个 SoundPool——一个 SoundPool 可以容纳许多不同的声音。

以上是关于如何在这段代码中添加另一个按钮?的主要内容,如果未能解决你的问题,请参考以下文章

如何在jTable中读取和搜索文件?

jQuery 如何在这段代码中获取 div?

如何在 Flutter 的 appbar 之外添加 endDrawer?

如何在这段代码中在 PHP 中使用 mysqli

在这段代码中,如何使用 notify 调用 wait() 调用?

c#如何使用委托 触发另一个窗体的按钮刷新另一窗体