我写了一个程序。  要求: 主界面(firstActivity)上有一个“登录”按钮,点击“确定”按钮后打开一个新的Activity(secondActivity);新的Activity上面有输入用户名和密码的控件和一个返回主界面的按钮,在用户返回主Activity后,将用户输入的用户名和密码传递到主界面中并用boast来显示出用户名和密码。
经过调试发现是如下代码发生了异常,这些代码是在主界面中重载了的onStart中。
super.onStart();
Intent getintent=this.getIntent();
        Bundle mybundle=getintent.getExtras();
        String username=mybundle.getString("username");
        String password=mybundle.getString("password");
        Toast.makeText(firstActivity.this, "姓名:"+username+"\n"+"密码:"+password, Toast.LENGTH_LONG).show();
出现的异常显示为空指针异常。求各位帮我看下,哪里出错了?
新Activity中的部分代码:
                Intent myintent=new Intent();
Bundle mybundle=new Bundle();
mybundle.putString("username",usernameText1.getText().toString());
mybundle.putString("password",passwordText2.getText().toString());
myintent.putExtras(mybundle);
myintent.setClass(secondActivity.this,firstActivity.class);
secondActivity.this.startActivity(myintent);
                secondActivity.this.finish();

解决方案 »

  1.   

    你在新的activity中不要进行  新  的跳转来,不要startActivity,要用secondActivity.this.setResult(2,intent)返回到主界面
    给你个小例子:Activity01
    Bundle bundle=new Bundle();
    bundle.putString("feng", "luchun");
    Intent  intent1=new Intent(Ac1.this,Ac2.class);
    intent.putExtras(bundle);-->是Extras
    startActivityForResult(intent,1);//还可以做进一步的操作
    onActivityResult   判断resultCode是不是返回过的Ac2设定的标志Activity02Bundle intent=this.getIntent().getExtras();
    String name=intent.getString("feng");
    textView.setText(name);Intent  intent1=getIntent();
    Ac2.this.setResult(2,intent);
    finish();//将这个Ac2关闭了,才能显示出Ac1哦
      

  2.   

    我按您的方法进行了改进,但还是出现相同的异常。
    请问在Activity01中intent1和intent是相同的对象吗(Activity02中也是一样的吗)?
    另外想问下startActivityForResult(intent,1)及Ac2.this.setResult(2,intent);中的参数1和2 分别代表什么?