如何将数组值传递给下一个活动

时间:2013-06-16 03:23:25

标签: android

我想将所有数组值传递给下一个活动。但我不知道该怎么做 如何使用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);












}

}

2 个答案:

答案 0 :(得分:0)

错误发生在这里:

  

intent.putExtra( “playerName”,字符串[I]的ToString());

此时,数组strings仍为空;你试图引用空值。

但是,关于您的问题,您获得了正确的方法:将值放入将发送到下一个活动的intent中。您可以使用带有字符串数组的putExtra,如SO question所示。

答案 1 :(得分:0)

您正在添加具有相同名称的所有额外内容,最后它将只是一个。

putExtra for array of strings

的重载版本