Conversation
| editText2.setHint("E-mail"); | ||
| Toast.makeText(AddContact.this, "Режим ввода E-mail", Toast.LENGTH_SHORT).show(); | ||
| } else if (isChecked== false){ | ||
| editText2.setHint("+375(29) XXX-XX-XX"); |
There was a problem hiding this comment.
лучше выносить текст в strings.xml
| public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { | ||
| if (isChecked == true) { | ||
| editText2.setHint("E-mail"); | ||
| Toast.makeText(AddContact.this, "Режим ввода E-mail", Toast.LENGTH_SHORT).show(); |
There was a problem hiding this comment.
лучше выносить текст в strings.xml
| Toast.makeText(AddContact.this, "Режим ввода E-mail", Toast.LENGTH_SHORT).show(); | ||
| } else if (isChecked== false){ | ||
| editText2.setHint("+375(29) XXX-XX-XX"); | ||
| Toast.makeText(AddContact.this, "Режим ввода телефона", Toast.LENGTH_SHORT).show(); |
There was a problem hiding this comment.
лучше выносить текст в strings.xml
| AppDatabase db; | ||
| SharedPreferences sPref; |
| AppDatabase db; | ||
| SharedPreferences sPref; | ||
| private int counter = 0; | ||
| private static List<Item> itemList; |
There was a problem hiding this comment.
этот лист явне не должен быть статическим
| if (requestCode == 1000 && resultCode == Activity.RESULT_OK && data != null) { | ||
| loadCounter(); | ||
| Toast.makeText(MainActivity.this, "Новый контакт добавлен", Toast.LENGTH_SHORT).show(); | ||
| itemList.add(counter, new Item(counter, data.getStringExtra("SAVEADDNAME"), data.getStringExtra("SAVEADDNUMBER"))); | ||
| db.contactDao().insert(new Item(counter, data.getStringExtra("SAVEADDNAME"), data.getStringExtra("SAVEADDNUMBER"))); | ||
| counter++; | ||
| saveCounter(counter); | ||
| itemListAdapter.notifyDataSetChanged(); | ||
|
|
||
| } else if (requestCode == 2000 && resultCode == Activity.RESULT_OK && data != null) { | ||
| Toast.makeText(MainActivity.this, "Контакт изменен", Toast.LENGTH_SHORT).show(); | ||
| position = data.getIntExtra("POSITION", 0); | ||
| itemList.set(position, new Item(position, data.getStringExtra("SAVEEDITNAME"), data.getStringExtra("SAVEEDITNUMBER"))); | ||
| db.contactDao().update(new Item(position, data.getStringExtra("SAVEEDITNAME"), data.getStringExtra("SAVEEDITNUMBER"))); | ||
| itemListAdapter.notifyDataSetChanged(); | ||
| } |
There was a problem hiding this comment.
Я конечно понимаю, что так намного проще. Но лучше конечно делать все необходимые операции в соответствующей активити. Тем самым ты уменьшаешь связанность компонентов твоей системы.
…act" и "EditContact"
| Toast.makeText(AddContact.this, R.string.addNewContact, Toast.LENGTH_SHORT).show(); | ||
| counter ++; | ||
| saveCounter(counter); | ||
| startActivity(intentSave); |
There was a problem hiding this comment.
Так а вот это тут лишнее. Не вижу смысла запускать новую активити. тебе по сути надо просто финишировать текущую
| private Switch switch1; | ||
| private boolean ifChecked; | ||
| private AppDatabase db; | ||
| private int counter; |
There was a problem hiding this comment.
ты можешь отказаться от каунтера и просто сделать автоинкрементное поле для id или генерить слачайную строку
| findViewById(R.id.buttonAdd).setOnClickListener(new View.OnClickListener() { | ||
| @Override | ||
| public void onClick(View v) { | ||
| Intent intentSave = new Intent(AddContact.this, MainActivity.class); |
There was a problem hiding this comment.
по сути интент тут вообще не нужен
| void saveCounter(int counter) { | ||
| sPref = getPreferences(MODE_PRIVATE); | ||
| SharedPreferences.Editor ed = sPref.edit(); | ||
| ed.putInt("COUNTER", counter); | ||
| ed.apply(); | ||
| } | ||
|
|
||
| public int loadCounter() { | ||
| sPref = getPreferences(MODE_PRIVATE); | ||
| this.counter = sPref.getInt("COUNTER", 0); | ||
| return counter; | ||
| } |
There was a problem hiding this comment.
Если использовать автоинкремент, то эти операции сами собой отпадают
| loadCounter(); | ||
| db.contactDao().insert(new Item(counter, name, phone)); | ||
| Toast.makeText(AddContact.this, R.string.addNewContact, Toast.LENGTH_SHORT).show(); | ||
| counter ++; |
There was a problem hiding this comment.
Если использовать автоинкремент, то эти операции сами собой отпадают
| final EditText editName = findViewById(R.id.editName); | ||
| final EditText editData = findViewById(R.id.editPhone); | ||
| Intent intentPosition = getIntent(); | ||
| position = intentPosition.getIntExtra("POSITION", 0); |
There was a problem hiding this comment.
лучше передавать сюда не позицию, а id твоего контакта. Так более правильно, потому что ты по нему потом сможешь получить контакт из базы
| data = editData.getText().toString(); | ||
| db.contactDao().update(new Item(position, name, data)); | ||
| Toast.makeText(EditContact.this, R.string.editContact, Toast.LENGTH_SHORT).show(); | ||
| startActivity(intentSaved); |
There was a problem hiding this comment.
Так а вот это тут лишнее. Не вижу смысла запускать новую активити. тебе по сути надо просто финишировать текущую
| findViewById(R.id.buttonSave).setOnClickListener(new View.OnClickListener() { | ||
| @Override | ||
| public void onClick(View v) { | ||
| Intent intentSaved = new Intent(EditContact.this, MainActivity.class); |
There was a problem hiding this comment.
по сути интент тут вообще не нужен
| Intent intentSaved = new Intent(EditContact.this, MainActivity.class); | ||
| name = editName.getText().toString(); | ||
| data = editData.getText().toString(); | ||
| db.contactDao().update(new Item(position, name, data)); |
There was a problem hiding this comment.
Лично я бы загружал бы контакт из базы в onCreate по id, потом тут обновлял бы его, и передавал бы в базу
|
|
||
| @Override | ||
| protected void onResume() { | ||
| itemList = db.contactDao().getAll(); |
There was a problem hiding this comment.
тут еще надо обновлять данные в адаптере
No description provided.