Как получить доступ к сеттеру из вложенного объекта в android? - PullRequest
0 голосов
/ 23 апреля 2020

Я хочу кое-что спросить, я хочу установить "Агаму" с введенным текстом редактирования. Но получается ошибка, подобная этой: enter image description here

В своей деятельности я использую счетчик для получения значений агамы:

spAgama = findViewById(R.id.spfagama);
        ArrayAdapter<CharSequence> adapterAgama = ArrayAdapter.createFromResource(TambahDataKeluarga.this,R.array.agama, android.R.layout.simple_spinner_item);
        adapterAgama.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spAgama.setAdapter(adapterAgama);

Как я могу установить значение моего счетчика в setAgama? Вот мой familylistresponse.java;

package com.example.cobaakses.cobaarrayretrofit;

import com.example.cobaakses.Agama;
import com.google.gson.annotations.SerializedName;

public class familylistresponse {

    @SerializedName("noPegawai")
    private String noPegawai;

    @SerializedName("date_otor")
    private Object dateOtor;

    @SerializedName("keterangan")
    private String keterangan;

    @SerializedName("tgl_Lahir")
    private String tglLahir;

    @SerializedName("nama")
    private String nama;

    @SerializedName("agama")
    private Agama agama;

    @SerializedName("statusNikah")
    private String statusNikah;

    @SerializedName("tempatLahir")
    private String tempatLahir;

    @SerializedName("id")
    private int id;

    @SerializedName("golDarah")
    private String golDarah;

    public void setNoPegawai(String noPegawai){
        this.noPegawai = noPegawai;
    }

    public String getNoPegawai(){
        return noPegawai;
    }

    public void setDateOtor(Object dateOtor){
        this.dateOtor = dateOtor;
    }

    public Object getDateOtor(){
        return dateOtor;
    }


    public void setKeterangan(String keterangan){
        this.keterangan = keterangan;
    }

    public String getKeterangan(){
        return keterangan;
    }


    public void setTglLahir(String tglLahir){
        this.tglLahir = tglLahir;
    }

    public String getTglLahir(){
        return tglLahir;
    }

    public void setNama(String nama){
        this.nama = nama;
    }

    public String getNama(){
        return nama;
    }

    public void setAgama(Agama agama){
        this.agama = agama;
    }

    public Agama getAgama(){
        return agama;
    }

    public void setStatusNikah(String statusNikah){
        this.statusNikah = statusNikah;
    }

    public String getStatusNikah(){
        return statusNikah;
    }

    public void setTempatLahir(String tempatLahir){
        this.tempatLahir = tempatLahir;
    }

    public String getTempatLahir(){
        return tempatLahir;
    }

    public void setId(int id){
        this.id = id;
    }

    public int getId(){
        return id;
    }

    public void setGolDarah(String golDarah){
        this.golDarah = golDarah;
    }

    public String getGolDarah(){
        return golDarah;
    }

    @Override
    public String toString(){
        return
                "familylistresponse{" +
                        ",id = '" + id + '\'' +
                        ",date_otor = '" + dateOtor + '\'' +
                        ",agama = '" + agama + '\'' +
                        ",tgl_Lahir = '" + tglLahir + '\'' +
                        ",nama = '" + nama + '\'' +
                        ",keterangan = '" + keterangan + '\'' +
                        ",tempatLahir = '" + tempatLahir + '\'' +
                        "noPegawai = '" + noPegawai + '\'' +
                        ",golDarah = '" + golDarah + '\'' +
                        ",statusNikah = '" + statusNikah + '\'' +
                        "}";
    }
}

, а вот мой Агама. java:

package com.example.cobaakses;

import com.google.gson.annotations.SerializedName;

public class Agama{

    @SerializedName("id_Agama")
    private String idAgama;

    @SerializedName("agama")
    private String agama;

    public void setIdAgama(String idAgama){
        this.idAgama = idAgama;
    }

    public String getIdAgama(){
        return idAgama;
    }

    public void setAgama(String agama){
        this.agama = agama;
    }

    public String getAgama(){
        return agama;
    }

    @Override
    public String toString(){
        return 
            "Agama{" + 
            "id_Agama = '" + idAgama + '\'' + 
            ",agama = '" + agama + '\'' + 
            "}";
        }
}

А также, когда я пытаюсь ввести данные в базу данных, данные не вставлен в базу данных (кстати, я использую модификацию) :( Пожалуйста, кто-нибудь поможет мне решить эту проблему. Спасибо

1 Ответ

1 голос
/ 23 апреля 2020

Ваша функция setAgama в familylistresponse получает объект Agama, поэтому вам нужно сначала создать объект Agama

Agama agama = new Agama()

, теперь вам нужно установить для этого объекта Agama нужную строку из счетчика

agama.setAgama(sp.getSelectedItem().toString().trim())

Теперь ваша агама готова к установке familylistresponse

f.setAgama(agama)

Попробуйте использовать более подходящие имена для переменных, потому что позже у вас возникнут проблемы с пониманием того, что вы сделали, когда приложение станет больше. Также убедитесь, что у вас есть функция setAgama в обоих классах. Вы должны называть его по-другому в классе Agama, потому что у вас есть объект Agama, внутри которого есть строка агамы. Возможно, вы можете определить класс как AgamaObject и иметь внутри аргумент name, который будет именем этого объекта Agama

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...