Я пытаюсь сделать приложение, которое сможет симулировать регистрацию графического пароля и авторизацию по нему(на самом деле под каждой кнопкой просто лежит число). Проблема в том, когда я возвращаю зарегистрированный пароль из второй активности, я не могу его сравнить с паролем введенным пользователем в главной активности.
Я пытался сделать compose2 глобальной переменной, но тогда при передаче через intent происходит вылет приложения. Прошу сильно не минусовать, если оформил что-то не так. Если будет необходима еще какая-либо информация, постараюсь оперативно дополнить
public class MainActivity extends Activity {
LinkedHashSet<Integer> inputTree = new LinkedHashSet<>();
ArrayList<Integer> compose3;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent intent = getIntent();
// ArrayList<Integer> compose2 =intent.getIntegerArrayListExtra("tree");
ArrayList<Integer> compose2 = (ArrayList<Integer>) getIntent().getSerializableExtra("tree");
setContentView(R.layout.activity_main);
}
public void goRegistration(View view) {
Intent intent = new Intent(MainActivity.this, registration.class);
startActivity(intent);
//setContentView(R.layout.activity_registration);
}
public void inputPassword(View view) {
switch (view.getId()) {
case R.id.button1:
inputTree.add(1);
break;
case R.id.button2:
inputTree.add(2);
break;
case R.id.button3:
inputTree.add(3);
break;
case R.id.button4:
inputTree.add(4);
break;
case R.id.button5:
inputTree.add(5);
break;
case R.id.button6:
inputTree.add(6);
break;
case R.id.button7:
inputTree.add(7);
break;
case R.id.button8:
inputTree.add(8);
break;
case R.id.button9:
inputTree.add(9);
break;
}
}
public void entranceButton(View view) {
compose3 = new ArrayList<>(inputTree);
// ArrayList<Integer> compose3 = new ArrayList<>(inputTree);
try {
if (compose2.equals(compose3)) {
setContentView(R.layout.activity_entrance);
} else {
Toast toast = Toast.makeText(this, "Неверный пароль!", Toast.LENGTH_LONG);
toast.show();
}
} catch (Exception e) {
Toast toast2 = Toast.makeText(this, "лол", Toast.LENGTH_LONG);
}
}
}
Второй класс, с помощью которого я задаю пароль
public class registration extends AppCompatActivity {
LinkedHashSet<Integer> tree=new LinkedHashSet <>();
@Override
protected void onCreate(Bundle savedInstanceState) {
tree.clear();
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_registration);
}
public void onLock(View view){
switch (view.getId()) {
case R.id.button2:
tree.add(1);
break;
case R.id.button3:
tree.add(2);
break;
case R.id.button4:
tree.add(3);
break;
case R.id.button5:
tree.add(4);
break;
case R.id.button6:
tree.add(5);
break;
case R.id.button7:
tree.add(6);
break;
case R.id.button8:
tree.add(7);
break;
case R.id.button9:
tree.add(8);
break;
case R.id.button10:
tree.add(9);
break;
}
}
public void onSave(View view) {
Integer[] compose1=tree.toArray(new Integer[0]);
Intent intent=new Intent(registration.this,MainActivity.class);
intent.putExtra("tree", compose1);
startActivity(intent);
}
}
Ошибка заключается в том, что я не могу передать compose2 в метод для кнопки сравнения и соответственно не могу их сравнить.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Команда new WebSocket("ws://46229
В Safari не работает, но работает в Google Chrome, OperaНе могу понять в чем проблема