我想实现一个注册的Activity将各控件信息用数组传递到另一个Activity,然后用TextView显示,可是我跳过去就弹错啊。
具体代码 注册Activity
public class RegisterActivity extends Activity {
  
private EditText userEditText,pwdEditText;
private RadioButton maleRadioButton,femaleRadioButton;
private ToggleButton tlbtn;
private CheckBox footCheck,basketCheck,baseCheck;
private Spinner sp;
private Button btn1,btn2;
List list = new ArrayList<String>();

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
       userEditText=(EditText)findViewById(R.id.user_editText1);
       pwdEditText=(EditText)findViewById(R.id.pwd_editText1);
        
       maleRadioButton=(RadioButton)findViewById(R.id.male_radioButton1);
        femaleRadioButton=(RadioButton)findViewById(R.id.female_radioButton2);
        
        footCheck=(CheckBox)findViewById(R.id.football_checkBox1);
        basketCheck=(CheckBox)findViewById(R.id.basketball_checkBox2);
        baseCheck=(CheckBox)findViewById(R.id.baseball_checkBox3);
        
        tlbtn=(ToggleButton)findViewById(R.id.toggleButton1);
        sp=(Spinner)findViewById(R.id.spinner1);
        
         String [] positions ={"程序员","测试员","经理"};
         ArrayAdapter<String> aad= new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item,positions);
         sp.setAdapter(aad);
         btn1=(Button)findViewById(R.id.resign_button);
         btn1.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {

Intent intent = new Intent();


intent.putStringArrayListExtra("aa",(ArrayList<String>) list);
intent.setClass(RegisterActivity.this, showInformation.class);
        startActivity(intent);
}
});
    }
    void register()
    {
     String username=userEditText.getText().toString();
     String password=pwdEditText.getText().toString();
     list.add(username);
     list.add(password);
     String gender="";
     if(maleRadioButton.isChecked())
     {
     gender="男";
     }
     else
     {
     gender="女";
     }
     list.add(gender);
    
     String hobby="";
     if(footCheck.isChecked())
     {
     hobby+="足球,";
     }
     else if(basketCheck.isChecked())
     {
     hobby+="篮球,";
     }
     else {
     hobby+="排球";
     }
     list.add(hobby);
    
     String married ="";
     if(tlbtn.isChecked())
     {
     married="已婚";
     }
     else{
     married="未婚";
     }
     list.add(married);
    
     String position=sp.getSelectedItem().toString();
     list.add(position);
    }
}显示的Activity public class showInformation extends Activity{
private TextView tv;

@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.information);
tv=(TextView)findViewById(R.id.show_textView1);
Intent intent = getIntent();
ArrayList<String> lt = new ArrayList<String>();
lt=intent.getExtras().getStringArrayList("aa");
tv.setText(lt.get(0)+"\n"+lt.get(1)+"\n"+lt.get(2)+"\n"+lt.get(3)+"\n"+lt.get(4)+"\n"+lt.get(5)+"\n"+lt.get(6));
}
}

解决方案 »

  1.   

    错误栈是什么?贴出来
    不过不贴也没关系,我个人建议,不要使用这坑爹的intent传东西,直接建个单例,比如AppData,把数据,比如你这个例子中的,封装成一个叫 UserEntity的实例,然后AppData.getInstance().setUser(user),到了第二个acitivity,要使用的时候,再getUser(),这样多好。
    搞什么inent,什么 extra,真是要多丑有多丑,还序列化?根本没这个必要
      

  2.   

    建个公共变量类,变量定义成public static,需要用的时候直接取值就好了