繁体   English   中英

将数据从一个活动传递到另一个活动,然后打印

[英]Passing data from one activity to another and then printing

我遇到的问题是它在第二个活动中打印出Null,而不是输入的实际用户名。 数据是否正确传递到第二个活动? 第二项活动是否需要更多代码? 对不起,但不是最擅长编程。

我的主班有这段代码

if (username.getText().toString().equals("batman") &&
password.getText().toString().equals("Joker")) { 
Toast.makeText(MainActivity.this, "Username and 
password is correct", Toast.LENGTH_SHORT).show();
Intent intent = new Intent("com.example.*******.loginpage.User");
intent.putExtra("username",String.valueOf(username));
startActivity(new Intent(MainActivity.this, User.class));

这是我第二节课中的代码。

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_user);

Intent intent = getIntent();
String username = getIntent().getStringExtra("username");

TextView textView = (TextView) findViewById(R.id.textView4);
textView.setText("Welcome" + " " + username );

问题是你打算上第一堂课

Intent intent = new Intent("com.example.*******.loginpage.User"); <-- have created an intent
intent.putExtra("username",String.valueOf(username));
startActivity(new Intent(MainActivity.this, User.class)); <-- but using new Intent

您已经创建了一个意图,但是您传递了新的意图。 使用创建的Intent而不是传递新的Intent。

Intent intent = new Intent(MainActivity.this, User.class);
intent.putExtra("username",String.valueOf(username));
startActivity(intent);

编辑

而是使用String.valueOf(username) ,而必须使用username.getText() ,因为String.valueOf(username)是将对象转换为String的方法。

Intent intent = new Intent(MainActivity.this, User.class);
intent.putExtra("username",username.getText());
startActivity(intent);

这里有两个问题。 第一个是您必须传递意图,而不是在startActivity中创建新对象,例如

Intent intent = new Intent(MainActivity.this, User.class);
intent.putExtra("username",username.getText().toString());
startActivity(intent);

第二个问题是用户名看起来像editText,String.valueOf不会传递实际值,请像我在代码中提到的那样使用username.getText()。toString()。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM