Класс Field:
public class Field{
int id;
String content;
boolean good;
Student(int id, String content, boolean good){
this.id = id;
this.content= content;
this.good= good;
}
}
Метод заполнения ArrayList:
public static ArrayList<Field> getFields(){
ArrayList<Field> Fields = new ArrayList<Field>();
Field Newspaper = new Field (1, "New York Times", true);
Field Magazine = new Field(2, "My Best Photo", false);
Fields.add(Newspaper);
Fields.add(Magazine);
return Fields;
}
Метод, вызывающийся при нажатии кнопки:
public void onClicked() {
String first_string = firstField.getText().toString();
SharedPreferences sp = getSharedPreferences("fieldStrings", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sp.edit();
ArrayList<Field> Fields = getFields();
for (int i = 0; i < Fields.size(); i++) {
if(first_string == Fields.get(i).content){
editor.putString("id", String.valueOf(Fields.get(i).id));
editor.apply();
Intent next= new Intent(this, NextActivity.class);
next.putExtra("id", String.valueOf(Fields.get(i).id));
next.putExtra("content", Fields.get(i).content);
next.putExtra("good", String.valueOf(Fields.get(i).good));
startActivity(next);
}
}
Нужно, чтобы при совпадении first_string и content в Shared Preferences добавлялся id, а в intent добавлялись все поля списка, в зависимости от индекса. После должен быть переход в NextActivity с данными intent.
Вопросы:
Во время отладки замечаю, что условие в цикле (if(first_string == Fields.get(i).content)) компилятор отмечает как false в любом случае, не важно, совпадает first_string с Fields.get(i).content или нет. Почему?
Даже если убрать это условие, компилятор не переходит на NextActivity. Почему?
Сборка персонального компьютера от Artline: умный выбор для современных пользователей