Невозможно присвоить новое значение параметру объекта

Вот моя проблема. Не могу присвоить новое значение параметру после сравнения параметров другого объекта с параметрами объекта базы данных. Мне нужно назначить новое значение test_car.make или делать. Кажется, что код XML в порядке, поэтому проблема должна быть в этом коде. Вот мой код:

package com.j.caradvisor;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.TextView;
import com.j.models.Car;

public class Result extends AppCompatActivity {

    int i=0;
    int doors;
    String make;
    String model;
    String layout;
    String trunk;
    String gearbox;
    int price;
    int expeople;
    Car test_car = new Car(1, "testmake", "testmodel", "test_layuot", "testtrunk", "testgearbox", 1, 1);
    String final_car=make+""+model;
    TextView resultt;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_result);
        resultt = (TextView) findViewById(R.id.result);
        test_car = getIntent().getParcelableExtra("test_car");
        doors = test_car.getDoors();
        make = test_car.getMake();
        model = test_car.getModel();
        trunk = test_car.getTrunk();
        gearbox = test_car.getGearbox();
        price = test_car.getPrice();
        expeople = test_car.getExpeople();
        this.getPackageName();
        //resultt.setText(final_car);
    }
    public void data(View view) {
        Car[] car;
        car = new  Car[12];
        car[0] = new Car(4, "Volkswagen", "Passat", "4 door saloon", "Spacious", "Both", 25000, 5);
        car[1] = new Car(2, "Mazda", "MX-5", "Roadster", "Small", "Both", 20000, 2);
        car[2] = new Car(2, "BMW", "2 series", "2 door coupe", "Spacious", "Both", 20000, 4);
        car[3] = new Car(3, "Volkswagen", "Golf", "3 door hatchback", "Spacious", "Both", 20000, 4);
        car[4] = new Car(5, "Peugeot", "308", "5 door hatchback", "Spacious", "Both", 20000, 5);
        car[5] = new Car(5, "Peugeot","508","Estate", "Spacious", "Both", 25000, 5);
        car[6] = new Car(5, "Ford", "S-Max", "Minivan", "Spacious", "Both", 28000,7);
        car[7] = new Car(5, "Ford", "Transit", "Van", "Spacious", "Manual", 20000, 9);
        car[8] = new Car(3, "Jeep", "Wrangler", "3 door SUV", "Spacious", "Automatic", 40000, 4);
        car[9] = new Car(5, "KIA", "Sportage", "5 door SUV", "Spacious", "Both", 25000, 5);
        car[10] = new Car(4, "Audi", "A7", "4 door coupe", "Spacious", "Both", 60000, 4);
        car[11] = new Car(5, "Peugeot", "208", "5 door hatchback", "Small", "Both", 14000, 5);
        for (Car aCar : car) {
            if ((test_car.getDoors() == aCar.getDoors())
                    && (test_car.getLayout().equals(aCar.getLayout()))
                    && (test_car.getTrunk().equals(aCar.getTrunk()))
                    && (test_car.getGearbox().equals(aCar.getGearbox()))
                    && (test_car.getPrice() <= aCar.getPrice())
                    && (test_car.getExpeople() <= aCar.getExpeople())) {

                test_car.setMake(aCar.getMake());
                make = test_car.getMake();
                //model=car[i].getModel();
                //test_car.setMake(make);
                //test_car.setModel(model);
                //resultt.setText(make);
                //resultt.setText(test_car.getMake());
            }
        }
        //resultt.setText(test_car.getMake());
        resultt.setText(make);
    }

    public void map_search(View view) {
        String uri = "http://maps.google.com/maps?saddr = " +test_car.getMake();
        Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(uri));
        intent.setPackage("com.google.android.apps.maps");
        startActivity(intent);
    }
}

а какая у вас актуальная проблема? Автомобиль - изменчивый тип?

Stultuske 29.05.2018 15:02

Небольшое наблюдение: "test_layout" написано неправильно в экземпляре test_car; «o» и «u» необходимо поменять местами.

user5954196 29.05.2018 15:35

Чарльз, спасибо, но это не влияет на общий код

Yulian Salo 29.05.2018 17:45

Стултуске, я объявил все сеттеры и геттеры в специализированном классе. Так что это изменчиво. Проблема заключается в присвоении параметра делать из объекта массива String делать или test_car.set.make. Он просто не выполняет присваивание и возвращает значение по умолчанию тест

Yulian Salo 29.05.2018 17:50
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
4
81
1

Ответы 1

if ((test_car.getDoors() == aCar.getDoors())

Кажется, всегда возвращается false, так как ваш тестовый автомобиль установлен на 1 (я предполагаю, что автомобиль [0] - это двери), поэтому

test_car.setMake(aCar.getMake());
make = test_car.getMake();`

Никогда не запускается, это также зависит от того, что вы указываете в качестве намерений ParcableExtra

test_car = getIntent().getParcelableExtra("test_car");

Все хорошо разбирается с предыдущей активностью, я это тестировал. Car [0] - это первый объект Car Array. Проблема в сравнении параметров "test_car's" и car [i] "

Yulian Salo 29.05.2018 17:43

Итак, у вашего тестового автомобиля вы хотите изменить марку (автомобили [1]), если у него такое же количество дверей, тот же багажник, компоновка и коробка передач (автомобили [0], автомобили [3], автомобили [4], автомобили [5]), а также цена и ожидаемое количество людей (автомобили [6], автомобили [7]) меньше или равное количеству участников теста, верно?

Oli C 30.05.2018 11:09

Другие вопросы по теме