0

我想将所有数组值传递给下一个活动。但我不知道如何使用 arrayList 来实现这一点。

我已经完成了这个编码,但是当我点击按钮时它给了我一个错误,我强行关闭了应用程序

package com.example.snooder;

import java.util.ArrayList;
import java.util.List;

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;
import android.widget.LinearLayout; 
import android.widget.RelativeLayout.LayoutParams;

public class players extends Activity {





LinearLayout player_layout;
Bundle b;

List<EditText> allEds = new ArrayList<EditText>();


@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)+1];
    Button add_player = new Button(players.this);
    add_player.setText("Add Players");


    for(int i=1;i<=Integer.parseInt(resStr);i++)
    {
        ed1[i] = new EditText(players.this);
        allEds.add(ed1[i]);
        player_layout.addView(ed1[i]);
        ed1[i].setId(i);
        ed1[i].setHint("enter player" +i+ "name");
        ed1[i].setHeight(50);
        ed1[i].setWidth(300);


            add_player.setOnClickListener(new OnClickListener() {

                public void onClick(View v) {
                    // TODO Auto-generated method stub


                    Intent intent = new        Intent(players.this,player_name.class);
                    String[] strings = new     String[allEds.size()];


                    for(int i=0; i < allEds.size(); i++){
                        strings[i] = allEds.get(i).getText().toString();
                    }
                    for(int i=0;i<allEds.size();i++)
                      {
                         intent.putExtra("playerName",strings[i].toString());
                      }
                      startActivity(intent);

                }
            });

    }

    LayoutParams lp = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
    player_layout.addView(add_player, lp);












}

}

4

2 回答 2

0

错误发生在这里:

intent.putExtra("playerName",strings[i].toString());

此时,数组strings还是空的;您正在尝试引用空值。

但是,关于您的问题,您得到了正确的方法:将值放入将发送到下一个活动的意图中。您可以使用putExtra这个SO question中所示的 String 数组。

于 2013-06-16T03:38:41.743 回答
0

您将添加所有具有相同名称的附加功能,最终它将只是一个。

字符串数组有重载版本的putExtra

于 2013-06-16T03:39:57.170 回答