Условие if в ArrayList Java, Android Studio

168
05 апреля 2018, 14:49

Класс 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. Почему?

READ ALSO
Object[] elementData,int size

Object[] elementData,int size

В реализации класса ArrayList есть следующие поля:Object[] elementData,int sizeОбъясните,зачем хранить отдельно size,если можно взять elementData

182
Как в Java из строки сделать список чисел?

Как в Java из строки сделать список чисел?

Есть строка с цифрами от 0 до 9, без пробеловНа выходе должен получиться список int, при чем если после какой-то единицы стоит ноль, то это число...

262
Как взаимодействовать с rar архивами c++?

Как взаимодействовать с rar архивами c++?

Хочу написать подбор паролей(на лабу нужно) для rar архивовСуществуют ли какие то апишки что бы у меня как минимум был функционал открытия...

213
В чём отличие flash drive от thumb drive для функции GetDriveType?

В чём отличие flash drive от thumb drive для функции GetDriveType?

Разбираюсь с WinAPI-функцией GetDriveTypeОна возвращает тип диска

234