-2

У меня есть 3 действия с именем MainActivity, Register и PersonalDetails. MainActivity - это то, где пользователь может войти в систему, при условии, что имя пользователя и пароль указаны или действительны. Если он действителен, он будет перенаправлен на операцию PersonalDetails. Активность регистра - это то, где пользователь может создать или сохранить новое имя пользователя, при условии, что он еще не существует. Если данное имя пользователя уже существует, оно должно уведомить пользователя.Проверьте, существует ли имя пользователя в созданном txt-файле

Моя проблема заключается в том, что я не знаю, как я буду проверять, указано ли имя пользователя в созданном текстовом файле. Любая помощь будет оценена по достоинству. Благодаря!

MainActivity.java

public class MainActivity extends AppCompatActivity { 

EditText uname; 
EditText pword; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    uname = (EditText) findViewById(R.id.etUsername); 
    pword = (EditText) findViewById(R.id.etPassword); 
} 

public void login(View view){ 

    if(){ 
     //if username and password existing/valid, redirect to PersonalDetails.java 
    } 
    else{ 

    } 
} 
} 

Register.java:

public class Register extends AppCompatActivity { 

EditText uname; 
EditText pword; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_register); 
    uname = (EditText) findViewById(R.id.etUsername); 
    pword = (EditText) findViewById(R.id.etPassword); 
} 

public void registerNew(View view){ 

    if(){ 
     //check if the username doesn't exist yet, if it doesn't, then save it to the text file 
    } 
    else{ 

    } 

} 

} 
+0

Любая причина, в частности, что вы используете локальный текстовый файл для аутентификации пользователя? Это просто для практики? – nicobatu

+0

@nicobatu Да. Я только начинаю изучать программирование на Android. Я пытаюсь применить некоторую простую аутентификацию. – Gelly

+0

Вместо текстового файла вы можете хранить зарегистрированные имена пользователей в SQLite. Поступая таким образом, вы также получите понимание SQLite. –

ответ

0

то будет довольно легко у просто получить строку у создать в ур RegisteredUsers.txt, а затем искать эту строку с помощью

ìf(!RegisteredUsersString.contains(uname.getText().toString()){ 
//do ur Stuff 
}else{ 
//Username taken 
} 
+0

Что это за RegisteredUsersString? – Gelly

+0

Ну, у вас есть текстовый файл, который вытаскивает все содержимое текстового файла в эту переменную. Я никогда не использовал текстовые файлы, поэтому я знаю, как это сделать, но я должен использовать этот метод на этапе проверки пароля ur в любом случае, поэтому я думаю, что вы знаете, как это сделать xD – BAAAZINGA

0

Ну, если вы хотите прочитать его из файла только тогда, он будет лучше иметь файл JSON в папке с ресурсами. С JSON будет проще разобрать. Поддерживайте пользователей JSONArray и проверяйте, доступен ли пользователь в этом массиве.

Опять же, это неправильный способ сделать, но поскольку вы просто хотите сделать это для обучения, тогда все в порядке.

+0

Простите, но я еще не встречал файл JSON. Не могли бы вы рассказать подробнее или сделать пример фрагмента кода? – Gelly