Android-如何实现嵌套按钮

Android-如何实现嵌套按钮,android,Android,我正在做一个有5个按钮的项目,当我点击其中任何一个按钮时,它应该会显示另外3个按钮。当我点击3个按钮中的任何一个时,它应该会打开一个活动 我试过使用它,但它没有给我我需要的东西,它给了我一个圆圈按钮 我能得到关于这方面的建议吗 按钮1-->嵌套按钮1-->嵌套按钮1 ---> Nested Button 2 按钮2 按钮3 按钮4 按钮5 在xml文件中有8个按钮。其中5个可见,3个隐藏和禁用 让5实现相同的onClickListener(使用xml onClick属

我正在做一个有5个按钮的项目,当我点击其中任何一个按钮时,它应该会显示另外3个按钮。当我点击3个按钮中的任何一个时,它应该会打开一个活动

我试过使用它,但它没有给我我需要的东西,它给了我一个圆圈按钮

我能得到关于这方面的建议吗

按钮1-->嵌套按钮1-->嵌套按钮1

     ---> Nested Button 2    
按钮2

按钮3

按钮4

按钮5

  • 在xml文件中有8个按钮。其中5个可见,3个隐藏和禁用
  • 让5实现相同的onClickListener(使用xml onClick属性最容易做到这一点)
  • 让3个应用程序也实现相同的onClick Listener(使用xml onClick属性最容易做到这一点)
  • 在5个按钮的onClickListener中,编写代码,使其他3个按钮可见并启用
  • 在3个按钮的onClickListener中,编写打开新活动的代码

  • 如果您是从布局创建按钮,那么我建议您添加活动或片段作为单击事件侦听器。其次,为按钮设置一个标签。然后单击按钮时,获取视图的标记并相应地处理

    以下是一个例子:

     protected CustomImageButton getSmartLinkImageButton(int buttonImageResource, int colorToChangeTo,  boolean isLargerImage, ActionType buttonAction) {
            LayoutInflater inflater = (LayoutInflater) this.getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            SmartLinkImageButton button = (SmartLinkImageButton) inflater.inflate(R.layout.footer_smartlink_image_button, null);
    
            LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(mFooterButtonWidth, 
                    isLargerImage == true ? mFooterButtonHeight / 2 : mFooterButtonHeight);
            params.gravity = Gravity.CENTER;
            button.setLayoutParams(params);
    
            if(isLargerImage) 
                button.setScaleType(ScaleType.FIT_CENTER);
            button.setImageResource(buttonImageResource);
    
            if(colorToChangeTo > 0) {
                changeImageViewImageColor(button, null, colorToChangeTo);
                button.setDefaultColorFilter(colorToChangeTo);
            }
    
            button.setTag(buttonAction); //HERE IS THE TAG CREATION
            button.setOnClickListener(this);
    
            //optional method for mapping image buttons
            mapImageButton(button, buttonAction);
    
            inflater = null;
            return button;
        }
    
    然后单击onClick:

    @Override
    public void onClick(View view) {            
        view.getTag(); //DO ACTION BASED ON VIEWS TAG
    }