从Intent获取数据

时间:2014-03-22 10:19:19

标签: java android android-intent

我正在为uni做一个项目(Android应用程序),经过一些帮助,我有一个登录屏幕,按照下面的代码:

//Do once the "Login" button is clicked
public void onClick(View view)
{
    //get the users name and password
    EditText editName = (EditText) findViewById(R.id.txtUserName);
    String name = editName.getText().toString();
    //EditText editPassword = (EditText) findViewById(R.id.txtUserPassword);
    //String password = editPassword.getText().toString();

    //create an Intent object and pass it the name and password
    Intent intent = new Intent(this, UserLoggedInScreen.class);
    intent.putExtra("userName", name);
    //intent.putExtra("userPassword", password);
    startActivity(intent);
}

我现在已经注释掉了密码位,只是为了让用户名工作正常。目的是单击按钮并将用户输入textUserName的文本输入到String名称中。然后将其传递给UserLoggedInScreen活动。

然后在UserLoggedInScreen中收集数据:

public class UserLoggedInScreen extends Activity
{
TextView welcomeUser;

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

    //get the Intent Object from LapMasterActivity
    Intent intent = getIntent();

    //get the data from the Intent Object
    String userName = intent.getStringExtra("userName");
    //String userPassword = intent.getStringExtra("userPassword");

    welcomeUser = (TextView) findViewById(R.id.txtUserName);
    welcomeUser.setText(userName);
}

当我尝试运行它并点击开始活动中的按钮时,我会得到通常的#34;不幸的是,UserLoggedInScreen已停止工作"。

我认为这可能是错误:

welcomeUser = (TextView) findViewById(R.id.txtUserName);

我尝试将txtUserName更改为userName,但这也没有帮助。

感谢。

2 个答案:

答案 0 :(得分:0)

你是否在AndroidManifast for Second Class中做了活动........

<activity android:name="UserLoggedInScreen"></activity>

答案 1 :(得分:0)

第一件事 Bappy 表示注册您的活动,以便在运行时检测到它。

<activity android:name="UserLoggedInScreen">
</activity>

第二件事

welcomeUser = (TextView) findViewById(R.id.txtUserName);

EditText editName = (EditText) findViewById(R.id.txtUserName);

你使用相同的id,你是故意这样做的吗?

请检查UserLoggedInScreen的TextView的ID。