Я новичок в разработке C# и Android (используя Xamarin). Я пытаюсь создать простой экран входа в систему, который будет проверять ввод пользователя, и если пользовательский ввод совпадает с данными в текстовых файлах, он покажет, что вход успешно, иначе он покажет, что логин завершился неудачно.Сравнение EditText со строкой в C#
Должен отметить, что я борюсь с этим почти целый день. Я думал, что кое-что испортил в кодировании, поэтому я создал простое консольное приложение, скопировал код там, и он работал отлично, поэтому я предполагаю, что моя проблема связана с сравнением строки с пользовательским вводом из EditText.
Приложение работает успешно, но каждый раз, когда я нажимаю кнопку, связанную с методом, который показан ниже, мое приложение падает и выкидывает меня.
Я создал два текстовых файла с именем user.txt и pass.txt. Первая строка в pass.txt - пароль для пользователя в первой строке в user.txt.
Еще раз, я должен упомянуть, что код отлично работает в консольном приложении (я заменил user_input из EditText на простой Console.Readline и Toast.MakeText с Console.Writeline). Пожалуйста, что я делаю неправильно?
public void read_list(object sender, EventArgs e)
{
k = FindViewById<EditText>(Resource.Id.user);
z = FindViewById<EditText>(Resource.Id.pass);
string user_input = k.Text.ToString();
string pass_input = z.Text.ToString();
int count = 0;
bool valid = false;
const string person = "user.txt";
List<string> users = new List<string>();
using (StreamReader username = new StreamReader(person))
{
string line;
while ((line = username.ReadLine()) != null)
{
users.Add(line);
}
foreach (string s in users)
{
if (Equals(s, user_input))
{
valid = true;
break;
}
count++;
}
}
const string key = "pass.txt";
List<string> passwords = new List<string>();
bool pass_valid = false;
using (StreamReader password = new StreamReader(key))
{
string pass_line;
while ((pass_line = password.ReadLine()) != null)
{
passwords.Add(pass_line);
}
if (Equals(passwords[count], pass_input))
{
pass_valid = true;
}
else
{
pass_valid = false;
}
}
if ((pass_valid) && (valid))
{
Toast.MakeText(this, "Login successful", ToastLength.Short).Show();
}
else
{
Toast.MakeText(this, "Login failed", ToastLength.Short).Show();
}
}
, пожалуйста, покажите журналы ошибок, если приложение сбой –
@ ρяσѕρєя K: Журналов ошибок нет. Приложение просто падает и говорит: «К сожалению, приложение перестало работать» и выкинул меня. Ни одна ошибка в Visual Studio или что-то еще. – matejcro
Я очень сомневаюсь. Вы можете проверить выходную страницу (View> Output in VS2013) и посмотреть, есть ли там какие-либо исключения? Приложения не просто врезаются, не указывая на то, что есть проблема ... если, конечно, вы не подавили все ошибки. –