Передача данных из одного действия в другое и затем печать - PullRequest
0 голосов
/ 03 октября 2018

Проблема, с которой я столкнулся, заключается в том, что во втором упражнении выводится значение 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 );

Ответы [ 2 ]

0 голосов
/ 03 октября 2018

Две проблемы здесь.Во-первых, вам нужно передать намерение, в которое вы положили свой дополнительный, вместо создания нового в startActivity, например

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

Вторая проблема заключается в том, что имя пользователя выглядит как editText, String.valueOf не передаст фактическоезначение, используйте username.getText (). toString (), как я упоминал в коде.

0 голосов
/ 03 октября 2018

Проблема заключается в вашем намерении в первом классе

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);

EDIT

Вместо использования String.valueOf(username) вы должны использовать username.getText(), потому что String.valueOf(username) это методперевести ваш объект в строку.

Intent intent = new Intent(MainActivity.this, User.class);
intent.putExtra("username",username.getText());
startActivity(intent);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...