2017-07-27 165 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的图像而不是子版面。点击主项目的加子版面并不是主要的。 –