Bre*_*ett 2 java android android-intent android-studio
我遇到的问题是它在第二个活动上打印出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));
Run Code Online (Sandbox Code Playgroud)
这是我的第二堂课内的代码.
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 );
Run Code Online (Sandbox Code Playgroud)
问题是你在第一堂课的意图
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
Run Code Online (Sandbox Code Playgroud)
您已经创建了一个intent但是您传递了新的intent.使用您创建的Intent而不是传递新的Intent.
Intent intent = new Intent(MainActivity.this, User.class);
intent.putExtra("username",String.valueOf(username));
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)
编辑
相反,使用String.valueOf(username)你必须使用username.getText(),因为String.valueOf(username)是将对象转换为String的方法.
Intent intent = new Intent(MainActivity.this, User.class);
intent.putExtra("username",username.getText());
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
46 次 |
| 最近记录: |