【问题标题】:How to take values from dynamically created EditText?如何从动态创建的 EditText 中获取值?
【发布时间】:2013-01-11 10:44:22
【问题描述】:

这里我通过单击按钮动态创建了 EdiIexts,如何从这些 EditTexts 中获取值?我见过很多例子,但我无法获得价值!

 final LinearLayout ll=new LinearLayout(this);
 ll.setOrientation(LinearLayout.VERTICAL);
 Button add_btn=new Button(this);
 add_btn.setText("Click to add TextViiews and EditTexts");
 ll.addView(add_btn);     

 add_btn.setOnClickListener(new OnClickListener() {     
     public void onClick(View v) {

         EditText et=new EditText(getApplicationContext());

         ll.addView(et);

【问题讨论】:

标签: android android-edittext


【解决方案1】:

您可以像处理 .xml 文件的 edittext 一样获取动态创建的 edittext 的值。

String value;
add_btn.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                value = et.getText().toString();
            }
        });

【讨论】:

  • TextView tv=(TextView)findViewById(R.id.tv1); EditText et2=new EditText(getApplicationContext());字符串 s=et2.getText().toString(); tv.setText(s); ll.addView(et2);
  • @user1940822,这是什么?您还有其他问题吗?
  • 好的,但如何显示值?我用过 tv1.settext(value);其中 tv 是 textview 我创建了 TextView tv1=(TextView)findviewbyid(R.id.tv);但我正在逼近。
  • @user1940822 请通过编辑在您的问题中显示您的新代码和 logcat 错误
  • public void onClick(View v) { String str; TextView tv=(TextView)findViewById(R.id.tv1); EditText et2=new EditText(getApplicationContext());字符串 s=et2.getText().toString(); tv.setText(s); ll.addView(et2); } });
【解决方案2】:

将此代码添加到您想要获取编辑文本值的位置

 EditText et2=(EditText)ll.getChildAt(l1.getChildCount()); //make sure to create new edittext variable do not use "et"
 String s=et2.getText().toString();

【讨论】:

  • 我在使用 EditText et2=(EditText)ll.getChildAt(getChildCount); 时遇到错误我在 getChildCount 处遇到错误,并且我正在尝试显示值,您能帮帮我吗
  • 我已经尝试过了,但我不知道我们如何知道它正在获取我们的值,所以如果我们显示我们可以知道的值,那么我正在尝试使用 textview 显示。
【解决方案3】:

EditText et 声明为您的Activity 的类级别成员变量

private EditText et = null;

现在,在 Button 的 onClick 中

add_btn.setOnClickListener(new OnClickListener() {     
 public void onClick(View v) {
     et = new EditText(getApplicationContext());
     ll.addView(et);

现在,您可以使用 Activity 范围内的任何位置获取 EditText et

if(et != null)
String value = et.getText().toString();

【讨论】:

  • 如果条件我应该写在哪里以及我们如何显示值
【解决方案4】:

试试这个,

LinearLayout linearLayoutForm = (LinearLayout) activity.findViewById(R.id.linearLayoutForm);
EditText edit = (EditText) linearLayoutForm.findViewById(id);
String value = edit.getText().toString();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-01-18
    • 2011-08-20
    • 2018-05-26
    • 1970-01-01
    • 1970-01-01
    • 2015-05-23
    • 2014-12-24
    相关资源
    最近更新 更多