Java 当我在Android Studio中动态添加一个新按钮时,第一个按钮消失了

Java 当我在Android Studio中动态添加一个新按钮时,第一个按钮消失了,java,android,listview,button,constraints,Java,Android,Listview,Button,Constraints,当我在Android Studio的constraint布局中添加一个新按钮时,第一个按钮消失了。我认为问题在于观点 有两个按钮可以弹出菜单,让我从其他按钮中进行选择。然后,我将新按钮添加到原始按钮的位置。 不幸的是,当我尝试添加第二个按钮时,第一个按钮消失了。 我包括了一些截图,因为我知道这很难理解 这是弹出菜单或和弦选择器。 我选择了一个和弦,应用程序添加了它。 但当我为右边的灰色空按钮选择另一个按钮时,左边的蓝色按钮消失了。它实际上在新的彩色按钮下,这很奇怪 这两个灰色按钮分别称为empt

当我在Android Studio的constraint布局中添加一个新按钮时,第一个按钮消失了。我认为问题在于观点

有两个按钮可以弹出菜单,让我从其他按钮中进行选择。然后,我将新按钮添加到原始按钮的位置。 不幸的是,当我尝试添加第二个按钮时,第一个按钮消失了。 我包括了一些截图,因为我知道这很难理解

这是弹出菜单或和弦选择器。 我选择了一个和弦,应用程序添加了它。 但当我为右边的灰色空按钮选择另一个按钮时,左边的蓝色按钮消失了。它实际上在新的彩色按钮下,这很奇怪

这两个灰色按钮分别称为empty1和empty2。

@Nullable
@凌驾
创建视图时的公共视图(@NonNull LayoutInflater inflater、@Nullable ViewGroup container、@Nullable Bundle savedInstanceState){
最终视图组根视图=(视图组)充气器。充气(R.layout.page_空,容器,false);
final ConstraintLayout mConstraintLayout=(ConstraintLayout)rootView.findViewById(R.id.constrainty);
最终约束集=新约束集();
set.clone(mConstraintLayout);
final-Typeface-Typeface=ResourcesCompat.getFont(getContext(),R.font.ComfortaRegular);
最终AppCompatButton清空1=(AppCompatButton)rootView.findViewById(R.id.empty1);
empty1.setOnClickListener(新视图.OnClickListener(){
公共void onClick(视图v){
PopupMenu-PopupMenu=新的PopupMenu(getContext(),v);
setOnMenuItemClickListener(新的popupMenu.OnMenuItemClickListener(){
@凌驾
公共布尔onMenuItemClick(菜单项){
开关(item.getItemId()){
案例cm7popup:
Toast.makeText(getContext(),“选择Cm7”,Toast.LENGTH_LONG.show();
alreadychosen=true;
final AppCompatButton cm7button=新建AppCompatButton(getContext());
cm7button.setText(“Cm7”);
cm7button.setTextSize(18);
CM7按钮设置填充(16,0,0,0);
CM7按钮设置字体(字体);

cm7按钮设置ID(cm7);//您没有显示当用户选择和弦时会发生什么,但我猜您的按钮不会消失,而是隐藏在灰色按钮后面。您没有删除灰色按钮,因此当重新绘制时,灰色按钮会绘制在蓝色按钮的顶部。当用户选择和弦时,蓝色按钮会出现。然后w当我想选择一个新的按钮时,它会消失。但是你说得对。灰色的按钮不会被删除,只是在背景中被按下。按钮之间是否存在层次结构?我可以设置哪个按钮应该更高?为什么灰色的按钮仍然存在?灰色按钮。setVisibility(View.GONE);当你想让它重新出现时,greyButton.setVisibility(视图。可见);我试过了。没有帮助。您没有显示用户选择和弦时会发生什么,但我猜您的按钮不会消失,它隐藏在灰色按钮后面。您没有删除灰色按钮,因此当重新绘制时,灰色按钮会绘制在蓝色按钮的顶部。当用户选择和弦时,蓝色按钮会显示为ap梨。然后,当我想选择一个新的时,它会消失。但你是对的。灰色的按钮没有被删除,只是在背景中被按下。按钮之间有层次结构吗?我可以设置哪个更高?为什么灰色的按钮仍然存在?灰色按钮。设置可见性(View.GONE);当你想让它重新出现时,greyButton.setvisibility(View.visibility);我试过了。没用。
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
    final ViewGroup rootView = (ViewGroup) inflater.inflate(R.layout.page_empty, container, false);



    final ConstraintLayout mConstraintLayout = (ConstraintLayout) rootView.findViewById(R.id.constraintEmpty);

   final ConstraintSet set = new ConstraintSet();

    set.clone(mConstraintLayout);

    final Typeface typeface = ResourcesCompat.getFont(getContext(), R.font.comfortaaregular);

    final AppCompatButton empty1 = (AppCompatButton) rootView.findViewById(R.id.empty1);
    empty1.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {

            PopupMenu popupMenu = new PopupMenu(getContext(), v);
            popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
                @Override
                public boolean onMenuItemClick(MenuItem item) {
                    switch (item.getItemId()) {
                        case cm7popup:
                            Toast.makeText(getContext(), "Cm7 Chosen", Toast.LENGTH_LONG).show();
                            alreadychosen=true;
                            final AppCompatButton cm7button = new AppCompatButton(getContext());

                            cm7button.setText("Cm7");
                            cm7button.setTextSize(18);
                            cm7button.setPadding(16,0,0,0);

                            cm7button.setTypeface(typeface);

                            cm7button.setId(cm7);           // <-- Important
                            cm7button.setBackgroundResource(R.drawable.blue_button);
                            cm7button.setGravity(Gravity.TOP);
                            mConstraintLayout.addView(cm7button);
                            set.connect(cm7button.getId(),ConstraintSet.TOP,R.id.guidelinetest13,ConstraintSet.TOP,0);
                            set.connect(cm7button.getId(), ConstraintSet.BOTTOM, R.id.guidelinetest14, ConstraintSet.BOTTOM, 0);
                            set.connect(cm7button.getId(),ConstraintSet.RIGHT,R.id.guidelinetest2,ConstraintSet.RIGHT,0);
                            set.connect(cm7button.getId(),ConstraintSet.LEFT,R.id.guidelinetest1,ConstraintSet.LEFT,0);
                            // set.constrainHeight(cm7button.getId(), 200);
                            set.applyTo(mConstraintLayout);


                            cm7button.setOnClickListener(new View.OnClickListener() {
                                @Override
                                public void onClick(View v) {
                                    MainActivity.myVib.vibrate(vibstark);
                                    SoundEngine.playsound57();

                                }
                            });

                            cm7button.setOnLongClickListener(new View.OnLongClickListener(){

                                public boolean onLongClick(View v){

                                    mConstraintLayout.removeView(cm7button);
                                    Toast.makeText(getContext(), "Chord Removed", Toast.LENGTH_SHORT).show();

                                    return true;
                                }


                              });



                            return true;
    final AppCompatButton empty2 = (AppCompatButton) rootView.findViewById(R.id.empty2);
    empty2.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {

            PopupMenu popupMenu = new PopupMenu(getContext(), v);
            popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
                @Override
                public boolean onMenuItemClick(MenuItem item) {
                    switch (item.getItemId()) {
                        case cm7popup:
                            Toast.makeText(getContext(), "Cm7 Chosen", Toast.LENGTH_LONG).show();
                            alreadychosen=true;
                            final AppCompatButton cm7button = new AppCompatButton(getContext());

                            cm7button.setText("Cm7");
                            cm7button.setTextSize(18);
                            cm7button.setPadding(16,0,0,0);


                            cm7button.setTypeface(typeface);

                            cm7button.setId(cm7_b);           // <-- Important
                            cm7button.setBackgroundResource(R.drawable.blue_button);
                            cm7button.setGravity(Gravity.TOP);
                            mConstraintLayout.addView(cm7button);
                            set.connect(cm7button.getId(),ConstraintSet.TOP,R.id.guidelinetest13,ConstraintSet.TOP,0);
                            set.connect(cm7button.getId(), ConstraintSet.BOTTOM, R.id.guidelinetest14, ConstraintSet.BOTTOM, 0);
                            set.connect(cm7button.getId(),ConstraintSet.RIGHT,R.id.guidelinetest4,ConstraintSet.RIGHT,0);
                            set.connect(cm7button.getId(),ConstraintSet.LEFT,R.id.guidelinetest3,ConstraintSet.LEFT,0);
                            // set.constrainHeight(cm7button.getId(), 200);
                            set.applyTo(mConstraintLayout);



                            cm7button.setOnClickListener(new View.OnClickListener() {
                                @Override
                                public void onClick(View v) {
                                    MainActivity.myVib.vibrate(vibstark);
                                    SoundEngine.playsound57();

                                }
                            });

                            cm7button.setOnLongClickListener(new View.OnLongClickListener(){

                                public boolean onLongClick(View v){

                                    mConstraintLayout.removeView(cm7button);
                                    Toast.makeText(getContext(), "Chord Removed", Toast.LENGTH_SHORT).show();
                                    return true;
                                }


                            });



                            return true;