Лучший способ передать значение переменной из одного класса в другой Android

#android

#Android

Вопрос:

Я очень новичок в Android, я учусь.

Я создал простую систему входа в систему, где она будет взаимодействовать с php. Работает нормально,

Прямо сейчас есть 3 действия,

1-й — вход 2-й — меню 3-й — просмотр

при входе в систему они должны указать свое имя пользователя, я хочу получить имя пользователя в представлении (3rd) Как я могу его получить? Я попробовал Google и прочитал, ни один из них не работает для меня: (

я использую

     final Button btn = (Button) findViewById(R.id.btn);
    btn.setOnClickListener(new View.OnClickListener() {
EditText name = (EditText)findViewById(R.id.name);
});
  

Ответ №1:

То, что вы ищете, — это намеренные «дополнения». Это дополнительные фрагменты информации, передаваемые от действия к действию по намерению.

В исходном коде моего приложения Google Moderator для Android есть пример.

Создание намерения, которое содержит некоторую дополнительную информацию (здесь, ‘идентификатор серии’):

   Intent intent = new Intent(activity, TopicActivity.class);
  intent.putExtra("seriesId", seriesId);
  //...
  activity.startActivity(intent);
  

http://www.google.com/codesearch/p?hl=en#RbTgvHmKhC4/trunk/src/com/google/android/apps/moderator/TopicListEntry.javaamp;l=49

При другом действии извлечение значения из того же намерения (теперь из намерения запуска) дополнительно:

    int seriesId = getIntent().getIntExtra("seriesId", -1);
  

http://www.google.com/codesearch/p?hl=en#RbTgvHmKhC4/trunk/src/com/google/android/apps/moderator/TopicActivity.javaamp;l=183

В этом примере -1 — это значение, которое будет возвращено, если нет «seriesId», переданного с дополнительным.

Ответ №2:

Вы можете присвоить имени пользователя общедоступное статическое значение, чтобы к нему можно было получить доступ из любого класса в вашем приложении.

Или вы можете передать его в своих действиях, используя метод Intent putExtra(..) http://developer.android.com/reference/android/content/Intent.html

Ответ №3:

Вы можете получить текст из EditText виджета с помощью getText() , за которым следует toString() . Итак, ваш код должен быть:

 final Button btn = (Button) findViewById(R.id.btn);
    btn.setOnClickListener(new View.OnClickListener() {
    EditText nameWidget = (EditText) findViewById(R.id.name);
    String username = nameWidget.getText().toString();
});
  

Комментарии:

1. Нет, он хочет передавать данные между действиями, получил просто значение EditText