0

editText を動的に追加したい。しかし、ボタンをクリックすると、次のアクティビティが強制的に閉じられます。ログに nullpointer 例外が記録されます。

コントロールを追加するとき、初期化のためにxmlファイルにコントロールが必要ですか??

package com.example.snooder;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;

public class MainActivity extends Activity {

    EditText ed1;
    Button btn1;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        ed1 = (EditText) findViewById(R.id.editText1);
        btn1 =(Button) findViewById(R.id.button1);

        btn1.setOnClickListener(new OnClickListener() {

            public void onClick(View v) {
                // TODO Auto-generated method stub
                Intent i = new Intent(MainActivity.this,players.class);
                i.putExtra("name",ed1.getText().toString());
                startActivity(i);       
            }
        });
    }
}

プレーヤー.java

package com.example.snooder;

import android.app.Activity;
import android.os.Bundle;
import android.widget.EditText;
import android.widget.LinearLayout;

public class players extends Activity {

    LinearLayout player_layout;
    Bundle b;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.players);

        b = getIntent().getExtras();
        String resStr = b.getString("name");
        player_layout = (LinearLayout) findViewById(R.id.player_layout);

        EditText[] ed1 = new EditText[Integer.parseInt(resStr)];

        for(int i=1;i<=Integer.parseInt(resStr);i++)
        {
            ed1[i] = new EditText(this);
            player_layout.addView(ed1[i]);
            ed1[i].setId(i);
            ed1[i].setHint("enter player's name");
            ed1[i].setHeight(50);
            ed1[i].setWidth(500);
        }
    }
}
4

1 に答える 1