如何从动态创建的edittext和add中显示值

时间:2013-01-26 06:50:39

标签: android

当我输入值时我动态创建了edittext我无法显示值的值。如果我想要添加我在编辑文本中输入的值,我怎么可能需要给出循环。

这是代码

 public class NewActivity extends Activity {

LinearLayout ll;

   EditText lEditText; 

   public void onCreate(Bundle savedInstanceState) {

   super.onCreate(savedInstanceState);

    setContentView(R.layout.main);

        ll=new LinearLayout(this);

            ll=(LinearLayout)findViewById(R.id.my);

            Button lButton = (Button)findViewById(R.id.mybtnid);

            lButton.setOnClickListener(new View.OnClickListener() {

            public void onClick(View arg0) {

            lEditText = new EditText(getApplicationContext());

            lEditText.setHint("Text Here");

            lEditText.setInputType(InputType.TYPE_CLASS_NUMBER);

            ll.addView(lEditText);


                 }
                });

        Button button1=(Button)findViewById(R.id.btn2);
            button1.setOnClickListener(new OnClickListener() {

            public void onClick(View v) {

                            TextView tv = new TextView(getApplication());

                          int x=Integer.parseInt(lEditText.getText().toString());

                          tv.setText(x);

                         ll.addView(tv);

            }
        });

我在logcat中遇到错误:

    AndroidRuntime(509): android.content.res.Resources$NotFoundException: String resource ID #0x1
    E/AndroidRuntime(509):  at android.content.res.Resources.getText(Resources.java:201)
    E/AndroidRuntime(509):  at android.widget.TextView.setText(TextView.java:2817)
    E/AndroidRuntime(509):  at com.app.NewActivity$2.onClick(NewActivity.java:44)
    E/AndroidRuntime(509):  at android.view.View.performClick(View.java:2408)
    E/AndroidRuntime(509):  at android.view.View$PerformClick.run(View.java:8816)
    E/AndroidRuntime(509):  at android.os.Handler.handleCallback(Handler.java:587)
    E/AndroidRuntime(509):  at android.os.Handler.dispatchMessage(Handler.java:92)
    E/AndroidRuntime(509):  at android.os.Looper.loop(Looper.java:123)
    E/AndroidRuntime(509):  at android.app.ActivityThread.main(ActivityThread.java:4627)
    E/AndroidRuntime(509):  at java.lang.reflect.Method.invokeNative(Native Method)
    E/AndroidRuntime(509):  at java.lang.reflect.Method.invoke(Method.java:521)
    E/AndroidRuntime(509):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
    E/AndroidRuntime(509):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
    E/AndroidRuntime(509):  at dalvik.system.NativeStart.main(Native Method)

3 个答案:

答案 0 :(得分:0)

您正在将整数传递给setText。你需要传递字符串,如果你传递int,你需要传递资源ID。

所以使用

   tv.setText("" + x);

而不是

   tv.setText(x);

答案 1 :(得分:0)

尝试进行如下更改,以设置TextView

中的文字
 int x=Integer.parseInt(lEditText.getText().toString());
   tv.setText(x+""); <-- Add "" to set the integer value in your textview.

<强>编辑:

尝试使用以下代码动态添加值:

   final EditText et1=(EditText)findViewById(R.id.editText1);
   final EditText et2=(EditText)findViewById(R.id.editText3);
    Button bt=(Button)findViewById(R.id.button1);
    bt.setOnClickListener(new OnClickListener() {           
        @Override
        public void onClick(View arg0) {
            try
            {
            int x=Integer.valueOf(et1.getText().toString());
            int y= Integer.valueOf(et2.getText().toString());
            int z=x+y;
            System.err.println(z+"");
                    tv.setText(z+""); 
            }
            catch (NumberFormatException e) {
                // TODO: handle exception
            }
        }
    });

答案 2 :(得分:0)

如果你去here,你可以看到如何使用动态来使用组件的setId。