0

値を入力するときに edittext を動的に作成しました。値を表示できません。編集テキストに入力した値を追加したい場合は、for ループを与える必要があります。

ここにコードがあります

 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)
4

3 に答える 3

0

ここに行くと、動的を使用してコンポーネントのsetIdを使用する方法を確認できます。

于 2013-01-26T07:10:20.033 に答える
0

setText に整数を渡しています。文字列を渡す必要があります。int を渡す場合は、リソース ID を渡す必要があります。

だから使う

   tv.setText("" + x);

それ以外の

   tv.setText(x);
于 2013-01-26T06:56:21.800 に答える
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
            }
        }
    });
于 2013-01-26T07:01:17.210 に答える