【问题标题】:How to I retrieve a random Id given to a generated EditText and pass it to a String如何检索提供给生成的 EditText 的随机 Id 并将其传递给 String
【发布时间】:2015-12-16 20:07:44
【问题描述】:

我正在制作一个应用程序,用户需要在其中生成 EditText 来输入数据。这是我的代码:

EditText editText = new EditText(getApplicationContext());
editText.setLayoutParams(new ActionBar.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
sundayLinearLayout.addView(editText);
editText.setHint("New side");
editText.getBackground().setColorFilter(getResources().getColor(R.color.black), PorterDuff.Mode.SRC_ATOP);
editText.generateViewId();
editText.setTextColor(getResources().getColor(R.color.black));
editText.setHintTextColor(getResources().getColor(R.color.gray));

每次用户点击创建一个新的 EditText,我给它一个随机的 id。我需要某种方法来识别用户以某种方式制作的所有 EditText,并将其传递给字符串或 int。我该怎么做?

【问题讨论】:

  • 可以使用数组来存储edittext的id。

标签: java android xml android-edittext


【解决方案1】:

将视图添加到任意Layout后,可以调用方法.getId()

然后你可以把它转换成一个字符串,然后做任何你想做的事情。

【讨论】:

  • 感谢您的回复,但我还有一个问题。使用标签有什么好处,然后我将如何检索我想要删除或保存它们的 editText?
  • @SG123 添加标签可以将对象与视图联系起来。当您的视图依赖或使用一些复杂的值时,它会被使用。在这种情况下,您调用 .setTag() 来绑定对象,当您需要轻松获取它时,您调用 .getTag()
  • @SG123,如果您以编程方式创建视图,您最好有一个指向这些视图的变量(全局或您可以轻松获取的地方),并在需要检索它们时使用它。
【解决方案2】:

有两种方法。 首先,您可以以随机/顺序的方式存储在列表中。 像这样:

List<EditText> editTextsList = new ArrayList<>();
EditText editText = new EditText(context); 
editTextsList.add(editText);

或者您可以通过 TAG 来识别您的观点。

List<EditText> editTextsList = new ArrayList<>();
EditText editText = new EditText(context);
editText.setTag(randomNumber) // it can be any object
editTextsList.add((int)editText.getTag, new EditText(context)); // in case your tag is an int

【讨论】:

  • 如果我需要用户能够创建尽可能多的视图怎么办。然后我需要能够通过我创建的数组列表保存这些视图中的所有文本,但是我如何能够指向列表中的所有值或者说用户想要删除第三个 editText 但是保持第四个等等?如何做到这一点。
猜你喜欢
  • 1970-01-01
  • 2021-06-12
  • 2021-08-23
  • 1970-01-01
  • 2016-03-31
  • 1970-01-01
  • 2021-06-11
  • 2020-02-23
  • 1970-01-01
相关资源
最近更新 更多