gpt4 book ai didi

android - 单击按钮为多个编辑文本生成动态 ID

转载 作者:太空狗 更新时间:2023-10-29 15:53:58 24 4
gpt4 key购买 nike

我有一行 EditText。我的场景是当用户点击一个按钮时,将添加另一行。我以某种方式实现了这一点,但 EditText 具有相同的 ID。那么如何分配动态创建的EditText的id。我的 EditText 在布局 XML 文件中。是否可以使用 XML,或者我必须以编程方式创建 EditText。提前致谢。

    private void inflateEditRow(String name) {

LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
final View rowView = inflater.inflate(R.layout.row, null);
final ImageButton deleteButton = (ImageButton) rowView
.findViewById(R.id.buttonDelete);
final EditText editText = (EditText) rowView
.findViewById(R.id.req);

if (name != null && !name.isEmpty()) {
editText.setText(name);
} else {
mExclusiveEmptyView = rowView;
deleteButton.setVisibility(View.VISIBLE);
}

// A TextWatcher to control the visibility of the "Add new" button and
// handle the exclusive empty view.
editText.addTextChangedListener(new TextWatcher() {

@Override
public void afterTextChanged(Editable s) {

if (s.toString().isEmpty()) {
mAddButton.setVisibility(View.VISIBLE);
deleteButton.setVisibility(View.VISIBLE);

if (mExclusiveEmptyView != null
&& mExclusiveEmptyView != rowView) {
mContainerView.removeView(mExclusiveEmptyView);
}
mExclusiveEmptyView = rowView;
} else {

if (mExclusiveEmptyView == rowView) {
mExclusiveEmptyView = null;
}

mAddButton.setVisibility(View.VISIBLE);
deleteButton.setVisibility(View.VISIBLE);
}
}


public void onAddNewClicked(View v) {
// Inflate a new row and hide the button self.
inflateEditRow(null);
v.setVisibility(View.VISIBLE);
}

最佳答案

为了动态生成 View ID,请使用 API 17 表单

generateViewId()

这将生成一个适合在 setId(int) 中使用的值。此值不会与 aapt 在构建时为 R.id.

生成的 ID 值冲突

像这样

            @Override
public void onClick(View v) {
// TODO Auto-generated method stub
EditText editText = new EditText(MainActivity.this);
editText.setId(editText.generateViewId());
editText.setHeight(50);
editText.setWidth(50);
ll.addView(editText);

}

关于android - 单击按钮为多个编辑文本生成动态 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18207623/

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