LinearLayout容器中的TextView可以折叠并展开Button单击吗?

问题描述:

我可以动态添加我的LinearLayout容器中的文本字段。LinearLayout容器中的TextView可以折叠并展开Button单击吗?

现在我需要将这些添加的字段合并,点击Button这些添加的字段应该会与任何标签崩溃。

可以这样做吗?以下是我可以动态添加EditText的代码。

enter image description here

txtHeading = (EditText)findViewById(R.id.heading); 
buttonAdd = (Button)findViewById(R.id.add); 
container = (LinearLayout)findViewById(R.id.container); 
buttonAdd.setOnClickListener(new View.OnClickListener(){ 

@Override 
public void onClick(View arg0) 
    LayoutInflater layoutInflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    final View addView = layoutInflater.inflate(R.layout.list_view, null); 
    LinearLayout linearLayout=(LinearLayout)findViewById(R.id.layout_icon_select); 
    TextView textOut = (TextView)addView.findViewById(R.id.textout); 

    textOut.setText(textIn.getText().toString()); 
    textIn.setText(null); 

    Button buttonRemove = (Button)addView.findViewById(R.id.remove); 
    buttonRemove.setOnClickListener(new View.OnClickListener(){ 
      @Override 
      public void onClick(View v) { 
       ((LinearLayout)addView.getParent()).removeView(addView); 
      } 
    }); 

    container.addView(addView); 
}}}); 

    btnsave = (Button) findViewById(R.id.btn_save); 
    btnsave.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
       //What to insert here? 

上点击保存需要折叠所有的TextView元素按钮。

让我们考虑标题是标签,它被命名为性别,所以如果我添加选项作为男性和女性,然后单击保存按钮后,应该在标题下折叠。

+0

'View.setVisibility(View.INVISIBLE)'和'View.setVisibility(View.VISIBLE)'是做到这一点的最佳选择什么看法。 – buzzingsilently

+0

虽然这也是选项,但我需要将此折叠项目与其标签一起传递到下一个活动。 – Niroj

+0

“将这个折叠的商品及其标签传递给下一个活动”意味着什么? – buzzingsilently

基于我所猜测的你想要的......我会创建一个基于线性布局的自定义视图类。每个都有两个编辑文本。

当按下添加按钮时,动态创建并添加此类。按下保存按钮后,您可以遍历父LinearLayout的子元素,然后调用辅助方法折叠第二个编辑文本元素。

要循环父项并折叠子项。现在CustomElement和collapseOptionField()调用是您必须编写的自定义代码。

LinearLayout parentLayout = findViewById(...); 
for (int i = 0; i < parentLayout.getChildCount(); i++) { 
    CustomElement ce = parentLayout.getChildAt(i); 
    ce.collapseOption(); 
} 

更新

定制类崩,能够选择:

public class TextWithOption extends LinearLayout { 

    EditText edit0; 
    EditText edit1; 

    public TextWithOption(Context context, AttributeSet attrs) { 
     this(context); 
    } 

    public TextWithOption(Context context) { 
     super(context); 

     View view = LayoutInflater.from(context).inflate(R.layout.edit_text_option, null); 

     edit0 = (EditText) view.findViewById(R.id.edit_text0); 
     edit1 = (EditText) view.findViewById(R.id.edit_text1); 

     addView(view); 
    } 

    public void collapseOption() { 
     edit1.setVisibility(View.GONE); 
    } 

    public void showOption() { 
     edit1.setVisibility(View.VISIBLE); 
    } 
} 

活动代码,将添加新的选项,然后塌陷它们:

final LinearLayout optionsLayout = (LinearLayout) findViewById(R.id.outer_layout); 

Button addButton = (Button) findViewById(R.id.button_add); 
addButton.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      TextWithOption to = new TextWithOption(context); 
      optionsLayout.addView(to); 
     } 
     }); 

     ((Button) findViewById(R.id.button_save)).setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      for (int i = 0; i < optionsLayout.getChildCount(); i++) { 
       ((TextWithOption)optionsLayout.getChildAt(i)).collapseOption(); 
      } 
     } 
     }); 
+0

后,您可以在布局上尝试使用无效方法,请详细解释或添加更多行代码。 – Niroj

public static void collapse(final View v) { 
    ScaleAnimation anim = new ScaleAnimation(1, 1, 1, 0); 
    v.startAnimation(anim); 
    anim.setAnimationListener(new Animation.AnimationListener() { 
     @Override 
     public void onAnimationStart(Animation animation) { 
     } 

     @Override 
     public void onAnimationEnd(Animation animation) { 
      v.setVisibility(View.GONE); 
     } 

     @Override 
     public void onAnimationRepeat(Animation animation) { 
     } 
    }); 
} 
按钮写view.collapse 鉴于10

的onclick等于你要崩溃

+0

你能编辑我的代码吗? – Niroj