我遇到的问题是它在第二个活动中打印出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 );
答案 0 :(得分:5)
问题在于您打算参加第一堂课
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);
答案 1 :(得分:1)
这里有两个问题。 第一个是您必须传递意图,在其中放置多余的东西,而不是像startp那样创建新的意图,例如
Intent intent = new Intent(MainActivity.this, User.class);
intent.putExtra("username",username.getText().toString());
startActivity(intent);
第二个问题是用户名看起来像editText,String.valueOf不会传递实际值,请像我在代码中提到的那样使用username.getText()。toString()。