Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/191.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将多个edittext值传递到Arraylist中,然后将其发送到另一个活动?_Java_Android_Arrays - Fatal编程技术网

Java 如何将多个edittext值传递到Arraylist中,然后将其发送到另一个活动?

Java 如何将多个edittext值传递到Arraylist中,然后将其发送到另一个活动?,java,android,arrays,Java,Android,Arrays,我试图将5个edittext值传递到Arraylist中,然后将其发送到另一个活动。我使用intent将其发送到下一个活动,但它不断崩溃。我得到这个错误: java.lang.NullPointerException:尝试从空数组读取 我认为我将值添加到arraylist中的方式是错误的,或者在intent中发送arraylist有问题 活动1: EditText p1, p2, p3, p4, p5; ArrayList<String> playerList = new Array

我试图将5个edittext值传递到
Arraylist
中,然后将其发送到另一个活动。我使用intent将其发送到下一个活动,但它不断崩溃。我得到这个错误:

java.lang.NullPointerException:尝试从空数组读取

我认为我将值添加到arraylist中的方式是错误的,或者在intent中发送
arraylist
有问题

活动1:

EditText p1, p2, p3, p4, p5;
ArrayList<String> playerList = new ArrayList<>();
BootstrapButton btnStart;

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

    btnStart = (BootstrapButton) findViewById(R.id.start);
    p1 = (EditText) findViewById(R.id.player1);
    p2 = (EditText) findViewById(R.id.player2);
    p3 = (EditText) findViewById(R.id.player3);
    p4 = (EditText) findViewById(R.id.player4);
    p5 = (EditText) findViewById(R.id.player5);

    playerList.add(p1.getText().toString());
    playerList.add(p2.getText().toString());
    playerList.add(p3.getText().toString());
    playerList.add(p4.getText().toString());
    playerList.add(p5.getText().toString());

    btnStart.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            Intent myIntent = new Intent(MainActivity.this, GameActivity.class);
            myIntent.putStringArrayListExtra("player_list", playerList);
            MainActivity.this.startActivity(myIntent);
        }

    });
  }
String[] array1={"asd","fgh","dcf","dg","ere","dsf"};
Intent myIntent = new Intent(MainActivity.this, GameActivity.class);
myIntent.putExtra("player_list", array1);
MainActivity.this.startActivity(myIntent);
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    btnStart = (BootstrapButton) findViewById(R.id.start);
    p1 = (EditText) findViewById(R.id.player1);
    p2 = (EditText) findViewById(R.id.player2);
    p3 = (EditText) findViewById(R.id.player3);
    p4 = (EditText) findViewById(R.id.player4);
    p5 = (EditText) findViewById(R.id.player5);

    playerList.add(p1.getText().toString());
    playerList.add(p2.getText().toString());
    playerList.add(p3.getText().toString());
    playerList.add(p4.getText().toString());
    playerList.add(p5.getText().toString());

    btnStart.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            Intent myIntent = new Intent(MainActivity.this, GameActivity.class);
            myIntent.putStringArrayListExtra("player_list", playerList);
            MainActivity.this.startActivity(myIntent);
        }

    });
  }
活动2:

TextView playerName;
ArrayList<String> playerList = new ArrayList<>();

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_game);
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

    playerName = (TextView) findViewById(R.id.playerName);

    Intent myIntent = getIntent();
    if(myIntent != null){
        playerList = myIntent.getStringArrayListExtra("player_list");
        playerName.setText(playerList.get(0));
    }
  }
    Intent myIntent = getIntent();
    if(myIntent != null){
        String[] players = myIntent.getStringArrayExtra("player_list");
        playerName.setText(players[2]);
    }else{
        System.out.println("Error!");
    }
    @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_game);
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

    playerName = (TextView) findViewById(R.id.playerName);

    Intent myIntent = getIntent();
    if(myIntent != null){
            ArrayList<String> players = myIntent.getStringArrayListExtra("player_list");
            playerName.setText(players.get(0));
        }else{
            System.out.println("Error!");
        }
      }

我想做的是有一个像这样的
[“p1”、“p2”、“p3”、“p4”、“p5”]
Arraylist
,然后在下一个活动中检索
Arraylist
并从该数组打印出一个随机名称。

使用
GetStringArrayListRA
而不是
getStringArrayExtra

if(myIntent != null){
        String[] players = myIntent.getStringArrayListExtra("player_list");
        playerName.setText(players[2]);
    }

使用
getStringArrayListExtra
not
getStringArrayExtra

if(myIntent != null){
        String[] players = myIntent.getStringArrayListExtra("player_list");
        playerName.setText(players[2]);
    }

在活动1中使用
intent.putStringArrayListExtra
发送字符串,在活动2中使用
getStringArrayListExtra()
检索字符串arraylistra

以下是执行此操作的代码:

活动1:

EditText p1, p2, p3, p4, p5;
ArrayList<String> playerList = new ArrayList<>();
BootstrapButton btnStart;

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

    btnStart = (BootstrapButton) findViewById(R.id.start);
    p1 = (EditText) findViewById(R.id.player1);
    p2 = (EditText) findViewById(R.id.player2);
    p3 = (EditText) findViewById(R.id.player3);
    p4 = (EditText) findViewById(R.id.player4);
    p5 = (EditText) findViewById(R.id.player5);

    playerList.add(p1.getText().toString());
    playerList.add(p2.getText().toString());
    playerList.add(p3.getText().toString());
    playerList.add(p4.getText().toString());
    playerList.add(p5.getText().toString());

    btnStart.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            Intent myIntent = new Intent(MainActivity.this, GameActivity.class);
            myIntent.putStringArrayListExtra("player_list", playerList);
            MainActivity.this.startActivity(myIntent);
        }

    });
  }
String[] array1={"asd","fgh","dcf","dg","ere","dsf"};
Intent myIntent = new Intent(MainActivity.this, GameActivity.class);
myIntent.putExtra("player_list", array1);
MainActivity.this.startActivity(myIntent);
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    btnStart = (BootstrapButton) findViewById(R.id.start);
    p1 = (EditText) findViewById(R.id.player1);
    p2 = (EditText) findViewById(R.id.player2);
    p3 = (EditText) findViewById(R.id.player3);
    p4 = (EditText) findViewById(R.id.player4);
    p5 = (EditText) findViewById(R.id.player5);

    playerList.add(p1.getText().toString());
    playerList.add(p2.getText().toString());
    playerList.add(p3.getText().toString());
    playerList.add(p4.getText().toString());
    playerList.add(p5.getText().toString());

    btnStart.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            Intent myIntent = new Intent(MainActivity.this, GameActivity.class);
            myIntent.putStringArrayListExtra("player_list", playerList);
            MainActivity.this.startActivity(myIntent);
        }

    });
  }
活动2:

TextView playerName;
ArrayList<String> playerList = new ArrayList<>();

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_game);
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

    playerName = (TextView) findViewById(R.id.playerName);

    Intent myIntent = getIntent();
    if(myIntent != null){
        playerList = myIntent.getStringArrayListExtra("player_list");
        playerName.setText(playerList.get(0));
    }
  }
    Intent myIntent = getIntent();
    if(myIntent != null){
        String[] players = myIntent.getStringArrayExtra("player_list");
        playerName.setText(players[2]);
    }else{
        System.out.println("Error!");
    }
    @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_game);
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

    playerName = (TextView) findViewById(R.id.playerName);

    Intent myIntent = getIntent();
    if(myIntent != null){
            ArrayList<String> players = myIntent.getStringArrayListExtra("player_list");
            playerName.setText(players.get(0));
        }else{
            System.out.println("Error!");
        }
      }
@覆盖
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_游戏);
setRequestedOrientation(ActivityInfo.SCREEN\u ORIENTATION\u横向);
playerName=(TextView)findViewById(R.id.playerName);
Intent myIntent=getIntent();
if(myIntent!=null){
ArrayList players=myIntent.getStringArrayListExtra(“玩家列表”);
playerName.setText(players.get(0));
}否则{
System.out.println(“错误!”);
}
}

还要确保声明并初始化了playerList。您的代码没有显示它正在声明或初始化。

在活动1中使用
intent.putStringArrayListExtra
发送,在活动2中使用
getStringArrayListExtra()
检索字符串arraylistra

以下是执行此操作的代码:

活动1:

EditText p1, p2, p3, p4, p5;
ArrayList<String> playerList = new ArrayList<>();
BootstrapButton btnStart;

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

    btnStart = (BootstrapButton) findViewById(R.id.start);
    p1 = (EditText) findViewById(R.id.player1);
    p2 = (EditText) findViewById(R.id.player2);
    p3 = (EditText) findViewById(R.id.player3);
    p4 = (EditText) findViewById(R.id.player4);
    p5 = (EditText) findViewById(R.id.player5);

    playerList.add(p1.getText().toString());
    playerList.add(p2.getText().toString());
    playerList.add(p3.getText().toString());
    playerList.add(p4.getText().toString());
    playerList.add(p5.getText().toString());

    btnStart.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            Intent myIntent = new Intent(MainActivity.this, GameActivity.class);
            myIntent.putStringArrayListExtra("player_list", playerList);
            MainActivity.this.startActivity(myIntent);
        }

    });
  }
String[] array1={"asd","fgh","dcf","dg","ere","dsf"};
Intent myIntent = new Intent(MainActivity.this, GameActivity.class);
myIntent.putExtra("player_list", array1);
MainActivity.this.startActivity(myIntent);
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    btnStart = (BootstrapButton) findViewById(R.id.start);
    p1 = (EditText) findViewById(R.id.player1);
    p2 = (EditText) findViewById(R.id.player2);
    p3 = (EditText) findViewById(R.id.player3);
    p4 = (EditText) findViewById(R.id.player4);
    p5 = (EditText) findViewById(R.id.player5);

    playerList.add(p1.getText().toString());
    playerList.add(p2.getText().toString());
    playerList.add(p3.getText().toString());
    playerList.add(p4.getText().toString());
    playerList.add(p5.getText().toString());

    btnStart.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            Intent myIntent = new Intent(MainActivity.this, GameActivity.class);
            myIntent.putStringArrayListExtra("player_list", playerList);
            MainActivity.this.startActivity(myIntent);
        }

    });
  }
活动2:

TextView playerName;
ArrayList<String> playerList = new ArrayList<>();

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_game);
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

    playerName = (TextView) findViewById(R.id.playerName);

    Intent myIntent = getIntent();
    if(myIntent != null){
        playerList = myIntent.getStringArrayListExtra("player_list");
        playerName.setText(playerList.get(0));
    }
  }
    Intent myIntent = getIntent();
    if(myIntent != null){
        String[] players = myIntent.getStringArrayExtra("player_list");
        playerName.setText(players[2]);
    }else{
        System.out.println("Error!");
    }
    @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_game);
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

    playerName = (TextView) findViewById(R.id.playerName);

    Intent myIntent = getIntent();
    if(myIntent != null){
            ArrayList<String> players = myIntent.getStringArrayListExtra("player_list");
            playerName.setText(players.get(0));
        }else{
            System.out.println("Error!");
        }
      }
@覆盖
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_游戏);
setRequestedOrientation(ActivityInfo.SCREEN\u ORIENTATION\u横向);
playerName=(TextView)findViewById(R.id.playerName);
Intent myIntent=getIntent();
if(myIntent!=null){
ArrayList players=myIntent.getStringArrayListExtra(“玩家列表”);
playerName.setText(players.get(0));
}否则{
System.out.println(“错误!”);
}
}

还要确保声明并初始化了playerList。您的代码没有显示它正在声明或初始化。

编辑文本中是否有任何内容?一旦活动开始,您将立即从编辑文本中获取值。如果它们中没有任何内容,那么您实际上是在向数组中添加空字符串。是否声明了
playerList
?此外,在测试它们时,您使用的是
array
,在实际实现中,您使用的是
ArrayList
是的,使用ArrayListyou也在使用
getStringArrayExtra
尝试使用
GetStringArrayListRa
编辑文本中是否有任何内容?一旦活动开始,您将立即从编辑文本中获取值。如果它们中没有任何内容,那么您实际上是在向数组中添加空字符串。是否声明了
playerList
?此外,在测试它们时,您使用的是
array
,在实际实现中,您使用的是
ArrayList
是的,使用ArrayListyou也在使用
getStringArrayExtra
尝试使用
GetStringArrayListRa