Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 05.03.2024
Сообщений: 1

Установка роли при регистрации и авторизации

05.03.2024, 17:27. Показов 438. Ответов 0

Студворк — интернет-сервис помощи студентам
Здравствуйте, я совсем новичок в java и пытаюсь сделать регистрацию и авторизацию в приложении с несколькими ролями: в Registration я беру логин и пароль, а в Username я беру роль через radio button и вот проблема в том что авторизовываюсь я под разными ролями, но роль не учитывается при авторизации то есть Userrole = null, роль не закрепляется за аккаунтом в User адаптере.Буду благодарен если сможете помочь если нужно могу добавить xml файлы
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
import androidx.appcompat.app.AppCompatActivity;
 
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
 
import com.google.android.material.textfield.TextInputLayout;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
 
import java.lang.reflect.Type;
import java.util.ArrayList;
 
public class Authorization extends AppCompatActivity {
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_authorization);
 
        Button startButton = findViewById(R.id.autorization);
        startButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                TextInputLayout loginLayout = findViewById(R.id.textInputLayout);
                String login = loginLayout.getEditText().getText().toString();
                TextInputLayout passwordLayout = findViewById(R.id.textInputLayout2);
                String password = passwordLayout.getEditText().getText().toString();
 
                SharedPreferences prefs = getSharedPreferences("userData", MODE_PRIVATE);
                String usersJson = prefs.getString("users", "[]");
                Gson gson = new Gson();
                Type userListType = new TypeToken<ArrayList<User>>(){}.getType();
                ArrayList<User> users = gson.fromJson(usersJson, userListType);
 
                if (users != null) {
                    for (User user : users) {
                        if (user.getLogin().equals(login) && user.getPassword().equals(password)) {
                            // Авторизация успешна
                            Toast.makeText(Authorization.this, "Authorization successful", Toast.LENGTH_SHORT).show();
                            // Здесь можно добавить код для перехода на следующую активити
                            Intent intent = new Intent(Authorization.this, Main_menu.class);
                            startActivity(intent);
                            finish();
                            return;
                        }
                    }
                }
                // Если авторизация не удалась
                Toast.makeText(Authorization.this, "Invalid login or password", Toast.LENGTH_SHORT).show();
            }
        });
    }
}
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import com.google.android.material.textfield.TextInputLayout;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import java.lang.reflect.Type;
import java.util.ArrayList;
 
public class Registration extends AppCompatActivity {
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_registration);
 
        Button start = findViewById(R.id.registration);
        start.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                TextInputLayout loginLayout = findViewById(R.id.textInputLayout3);
                String login = loginLayout.getEditText().getText().toString();
                TextInputLayout passwordLayout = findViewById(R.id.textInputLayout4);
                String password = passwordLayout.getEditText().getText().toString();
                String role = "user";
 
                // Создаем объект User и устанавливаем роль
                User user = new User(login, password, role);
 
                SharedPreferences prefs = getSharedPreferences("userData", MODE_PRIVATE);
                String usersJson = prefs.getString("users", "[]");
                Gson gson = new Gson();
                Type userListType = new TypeToken<ArrayList<User>>(){}.getType();
                ArrayList<User> users = gson.fromJson(usersJson, userListType);
 
                if (users == null) {
                    users = new ArrayList<>();
                }
                users.add(user);
 
                SharedPreferences.Editor editor = getSharedPreferences("userData", MODE_PRIVATE).edit();
                editor.putString("users", gson.toJson(users));
                editor.apply();
 
                Intent intent = new Intent(Registration.this, Username.class);
                startActivity(intent);
            }
        });
    }
}
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import com.google.android.material.textfield.TextInputLayout;
 
public class Username extends AppCompatActivity {
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_username);
 
        Button start_2 = findViewById(R.id.regist_button);
        start_2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                // Получаем имя, фамилию и отчество из соответствующих полей
                TextInputLayout string_firstname_layout = findViewById(R.id.textInputLayout3);
                String firstName = string_firstname_layout.getEditText().getText().toString();
                TextInputLayout string_lastname_layout = findViewById(R.id.textInputLayout4);
                String lastName = string_lastname_layout.getEditText().getText().toString();
                TextInputLayout string_middlename_layout = findViewById(R.id.textInputLayout5);
                String middleName = string_middlename_layout.getEditText().getText().toString();
 
                // Получаем выбранную роль
                RadioGroup radioGroup = findViewById(R.id.radios);
                int selectedRadioButtonId = radioGroup.getCheckedRadioButtonId();
                RadioButton selectedRadioButton = findViewById(selectedRadioButtonId);
                String role = "";
 
                if (selectedRadioButtonId == R.id.radio_Button_1) {
                    role = "user";
                } else if (selectedRadioButtonId == R.id.radio_Button_2) {
                    role = "employee";
                }
 
                // Сохраняем данные в SharedPreferences
                SharedPreferences.Editor editor = getSharedPreferences("userData", MODE_PRIVATE).edit();
                editor.putString("firstName", firstName);
                editor.putString("lastName", lastName);
                editor.putString("middleName", middleName);
                editor.apply();
 
                // Устанавливаем роль в SharedPreferences "auth"
                SharedPreferences.Editor authEditor = getSharedPreferences("auth", MODE_PRIVATE).edit();
                authEditor.putString("role", role);
                authEditor.apply();
 
                // Создаем Intent для передачи данных в следующую активити
                Intent intent = new Intent(Username.this, Registration.class);
                startActivity(intent);
            }
        });
 
        // устанавливаем обработчики для кнопок
        findViewById(R.id.radio_Button_1).setOnClickListener((view)->onRadioButtonClicked(view));
        findViewById(R.id.radio_Button_2).setOnClickListener((view)->onRadioButtonClicked(view));
    }
 
    public void onRadioButtonClicked(View view) {
        RadioButton radio = (RadioButton) view;
        // если переключатель отмечен
        boolean checked = radio.isChecked();
    }
}
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
public class User {
    private String login;
    private String password;
    private String role;
 
    public User(String login, String password, String role) {
        this.login = login;
        this.password = password;
        this.role = role;
    }
 
    public String getLogin() {
        return login;
    }
 
    public String getPassword() {
        return password;
    }
 
    public String getRole() {
        return role;
    }
 
    public void setRole(String role) {
        this.role = role;
    }
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.03.2024, 17:27
Ответы с готовыми решениями:

Присвоение роли при регистрации нового пользователя
Добрый день, подскажите, как назначать роль новому пользователю при регистрации через связующую таблицу. Модели: User и Role Таблицы:...

Переадрессация на нужную страницу при авторизации в зависимости от роли пользователя
Подскажите пожалуйста, как реализовать сравнение роли пользователя, что бы в зависимости от роли, он при авторизации, попадал на...

Ошибка при регистрации/авторизации mvc3 razor при переносе на хостинг
Здравствуйте! При переносе на хост, при попытке авторизоваться, либо зарегистрироваться выходит ошибка: Format of the initialization...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.03.2024, 17:27
Помогаю со студенческими работами здесь

Работа с капчей при авторизации регистрации на mail.ru
В общем пытаюсь я программно зарегистрироваться на mail.ru. Отловил запрос, переписал в программу, но беда что с каптчей делать ума...

Создание регистрации и аутентификации spring. Логика регистрации и авторизации
Для регистрации юзера на сервер приходят данные в json формате(логин пароль подтвержденный пароль). Принимаю их на контроллер на маппинг...

Ошибка от сервера при авторизации / регистрации: failed to decode JSON
Решил попробовать сделать код на авторизацию и регистрацию без входа на сайт. Пытаюсь регистрировать (со входом тоже самое) на twitch.tv: ...

При входе в Visual Studio вылазит окошко авторизации с учетной записью: можно ли обойтись без регистрации?
при входе в визуал студио вылазит окошко авторизации с учетной записью. раньше такого не было. сейчас появилось, обойти его не...

Ошибка при работе с ролями (нужно назначить второй роли первую в качестве роли)
Не получается назначьте второй роли первую в качестве роли. Как я хочу это сделать: AlTER ROLE Адм2 IN ROLE Адм1 Возникает ОШИБКА: ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru