2017-07-27 7 views
0

edittextの動的レイアウトを追加アイコンとマイナスアイコンで作成しました。私がマイナスをクリックすると、サブレイアウトは削除されますが、削除されますが、マイナスはプラスに変更されません。アイコンを変更することができます。動的イメージをクリックするとレイアウトが表示されずに表示されます

これは私のダイナミックなレイアウトです:

public void dLayout(){ 
     count++; 
     lay_frame = new LinearLayout(this); 
     lay_frame.setOrientation(LinearLayout.VERTICAL); 
     lay_frame.setId(count); 

     for (int i =0; i<numClass; i++){ 
      lay_main = new LinearLayout(this); 
      lay_uncle = new LinearLayout(this); 
      lay_cousin = new LinearLayout(this); 

      lay_main.setOrientation(LinearLayout.VERTICAL); 
      lay_uncle.setOrientation(LinearLayout.HORIZONTAL); 
      lay_uncle.setGravity(Gravity.CENTER); 
      lay_cousin.setOrientation(LinearLayout.HORIZONTAL); 
      lay_cousin.setGravity(Gravity.CENTER); 

      txt_uncle = new TextView(this); 
      txt_uncle.setText("Uncle Name"); 
      txt_uncle.setTextColor(Color.BLACK); 
      txt_uncle.setPadding(0, 20 , 0, 20); 
      txt_uncle.setTextSize(14); 

      txt_cousin = new TextView(this); 
      txt_cousin.setText("Cousin Name"); 
      txt_cousin.setTextColor(Color.BLACK); 
      txt_cousin.setPadding(0, 20 , 0, 0); 
      txt_cousin.setTextSize(14); 

      img_add = new ImageView(this); 
      img_add.setImageResource(R.drawable.add01); 
      img_add.setPadding(8, 0, 0 ,0); 

      img_minus = new ImageView(this); 
      img_minus.setImageResource(R.drawable.minus); 
      img_minus.setPadding(8, 0, 0 ,0); 
      img_minus.setVisibility(View.GONE); 

      img_cousinadd = new ImageView(this); 
      img_cousinadd.setImageResource(R.drawable.add01); 
      img_cousinadd.setPadding(8, 0, 0 ,0); 

      img_cousinminus = new ImageView(this); 
      img_cousinminus.setImageResource(R.drawable.minus); 
      img_cousinminus.setPadding(8, 0, 0 ,0); 

      ed_uncle = new EditText(this); 
      ed_uncle.setInputType(InputType.TYPE_CLASS_TEXT); 
      ed_uncle.setPadding(12, 8 ,8 ,8); 
      ed_uncle.setTextColor(Color.BLACK); 
      ed_uncle.setTextSize(14); 
      ed_uncle.setBackgroundResource(R.drawable.border); 

      ed_cousin = new EditText(this); 
      ed_cousin.setInputType(InputType.TYPE_CLASS_TEXT); 
      ed_cousin.setPadding(12, 8 ,8 ,8); 
      ed_cousin.setTextColor(Color.BLACK); 
      ed_cousin.setTextSize(14); 
      ed_cousin.setBackgroundResource(R.drawable.border); 

      final LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
        LinearLayout.LayoutParams.MATCH_PARENT, 80, 8.5f 
      ); 
      params.setMargins(80, 0, 0, 0); 
      ed_cousin.setLayoutParams(params); 
      txt_cousin.setLayoutParams(params); 

      LinearLayout.LayoutParams params1 = new LinearLayout.LayoutParams(
        LinearLayout.LayoutParams.MATCH_PARENT, 80, 8.5f 
      ); 
      params.setMargins(40, 0, 0, 0); 
      ed_uncle.setLayoutParams(params1); 

       img_add.setOnClickListener(new View.OnClickListener() { 
        @Override 
        public void onClick(View view) { 

         img_add.setVisibility(View.GONE); 
         img_minus.setVisibility(View.VISIBLE); 

         dLayout(); 

        } 

       }); 


       img_minus.setOnClickListener(new View.OnClickListener() { 
        @Override 
        public void onClick(View view) { 

         if (count > 0) { 

          final LinearLayout temp = (LinearLayout) mainLayout.findViewById(count); 
          mainLayout.removeView(temp); 
          count--; 

         } 


         img_minus.setVisibility(View.GONE); 
         img_add.setVisibility(View.VISIBLE); 


        } 
       }); 

      lay_main.addView(txt_uncle); 
      lay_uncle.addView(ed_uncle); 
      lay_uncle.addView(img_add); 
      lay_uncle.addView(img_minus); 
      lay_main.addView(lay_uncle); 
      lay_main.addView(txt_cousin); 
      lay_cousin.addView(ed_cousin); 
      lay_cousin.addView(img_cousinadd); 
      lay_main.addView(lay_cousin); 
      lay_frame.addView(lay_main); 

     } 

     mainLayout.addView(lay_frame); 

    } 
+0

dLayout()にある機能は何ですか?方法 ? –

+0

public void dLayout(){ count ++; lay_frame = new LinearLayout(this); lay_frame.setOrientation(LinearLayout.VERTICAL); lay_frame.setId(count); ......質問の上部にある –

答えて

0
があるので、あなたがdLayoutに行ってマイナスボタンの可視性を()の設定を再度可視性を設定した後、あなたのBTNこの

img_add.setOnClickListener(new View.OnClickListener() { 
        @Override 
        public void onClick(View view) { 

         dLayout();  

         img_add.setVisibility(View.GONE); 
         img_minus.setVisibility(View.VISIBLE); 

        } 
       }); 

にクリックロジックを追加変更

。つまり、プロパティは次の値でオーバーライドされます。

+0

が動作しますが、サブ項目プラス画像がマイナスに変更されます。 –

0

マイナスボタンのonClickリスナーでは、lay_frame LinearLayoutがメインレイアウトから削除されました。マイナスボタンはlay_frameレイアウトの子であり、これはもはやビューツリーに関連付けられていません。マイナスボタンをクリックしてビューを削除している場合は、アイコンをマイナスからプラスに変更しても意味がありません。

+0

サブレイアウト用ではなくメインlauoutのプラス画像を変更したい。メインアイテムのプラスをクリックするとメインレイアウトではなくサブレイアウトが削除されます。 –

関連する問題