Студия Android, наследование переменной от класса, вставленного в класс - PullRequest
0 голосов
/ 04 мая 2018

Я делаю экран входа в Android Studio, и я хочу использовать электронную почту, взятую из базы данных, использовать ее для входа в систему, а затем показать ее в другой актив, где вы можете увидеть свой профиль. Проблема в том, что я не могу использовать значение переменной «email» в другом классе, потому что оно вложено в класс внутри класса. Если я пытаюсь объявить его статическим, он говорит: «Внутренние классы не могут иметь статических объявлений.

Это код:

public class Login extends AppCompatActivity 
{

....

private  class Send extends AsyncTask<String,String,String>
     {

   String email = editTextEmail.getText().toString();
........

     }

}

Есть ли способ вернуть значение электронной почты, чтобы его можно было использовать в другом классе?

Ответы [ 2 ]

0 голосов
/ 04 мая 2018

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

public SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(this);
settings.edit().putString("EMAIL", theemail).apply();

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

settings.getString("EMAIL", "");

Еще одним преимуществом этого метода является то, что если информация профиля базы данных может быть обновлена ​​или изменена в вашем приложении, тогда все, что вам нужно, это изменить значение предпочтения EMAIL , используя:

settings.edit().putString("EMAIL", newemail).apply();

ПРИМЕЧАНИЕ: Вам может потребоваться базовое действие, чтобы сделать это очень эффективным.

0 голосов
/ 04 мая 2018

Когда вы хотите передавать данные между действиями. Первый и самый главный способ - использовать Intent.

Intent i = new Intent(this, NewActivity.class);
i.putExtra("name", "value");

И в вашем NewActivity получите доступ к значению, используя:

String extra = i.getStringExtra("name");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...