gpt4 book ai didi

android - LinearLayout 容器内的 TextView 可以折叠并在单击 Button 时展开吗?

转载 作者:行者123 更新时间:2023-11-30 01:01:14 27 4
gpt4 key购买 nike

我可以在我的 LinearLayout 容器中动态添加文本字段。

现在我需要通过单击 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 元素。

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

最佳答案

根据我对您想要的猜测...我将创建一个基于线性布局的自定义 View 类。每个都有两个编辑文本。

按下添加按钮时动态创建并添加此类。当按下保存按钮时,您可以遍历父 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);
}
}

将添加新选项然后折叠它们的 Activity 代码:

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();
}
}
});

关于android - LinearLayout 容器内的 TextView 可以折叠并在单击 Button 时展开吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39367818/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com