无法将最后插入的ID传递给另一个活动,Intent始终返回默认值

时间:2016-06-12 16:03:40

标签: java android android-intent insert android-database

我正在尝试传递我的方法“InserIntoRegSintomas”返回的id,但似乎总是将“0”传递给此行的默认值:

final long id = intent2.getIntExtra("myExtras", 0);

我试图获取ID并将其传递给下一个活动:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_intensidade_picker);

    CirclePicker = (HoloCircleSeekBar) findViewById(R.id.picker);

    Skip = (ImageButton) findViewById(R.id.btnSkip);
    Seguinte = (ImageButton) findViewById(R.id.btnNext);

    Seguinte.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {

            dal = new DAL(IntensidadePicker.this);
            dal.connect(DBAccessMode.READ);

            Intent intent = getIntent();
            Sintoma s = (Sintoma)intent.getSerializableExtra("sampleObject");

            s.setIntensidade(CirclePicker.getValue());
            dal.insertIntoRegSintomas(s);
            long id = s.getId();


            Intent intent2 = new Intent(IntensidadePicker.this, Motivo_sintoma.class);
            intent2.putExtra("myExtras", id);
            startActivity(intent2);
        }
    });
}
}

我获得意图传递值:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_motivo_sintoma);

    android.support.v7.app.ActionBar actionBar =  getSupportActionBar() ;
    actionBar.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#1a212c")));

    //gets oldFruits.
    Intent intent2 = getIntent();
    final long id = intent2.getIntExtra("myExtras", 0);

    Skip = (ImageButton) findViewById(R.id.btnSkip);
    Next = (ImageButton) findViewById(R.id.btnNext);
    btnAlcool = (ImageButton) findViewById(R.id.imageButton1);
    btnAnsiedade = (ImageButton) findViewById(R.id.imageButton2);
    btnCafe = (ImageButton) findViewById(R.id.imageButton3);
    btnStress = (ImageButton) findViewById(R.id.imageButton4);
    btnTempo = (ImageButton) findViewById(R.id.imageButton5);
    btnCansaco = (ImageButton) findViewById(R.id.imageButton6);
    btnSono= (ImageButton) findViewById(R.id.imageButton7);
    btnRemover = (ImageButton) findViewById(R.id.imageButton8);
    btnAdicionar = (ImageButton) findViewById(R.id.imageButton9 );

    dal = new DAL(Motivo_sintoma.this);
    dal.connect(DBAccessMode.READ);

    Skip.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            Intent intent = new Intent(Motivo_sintoma.this, TomouMedicacao.class);
            startActivity(intent);
        }
    });

    btnAlcool.setOnClickListener(new View.OnClickListener() {
        public void onClick(View button) {
            btnAlcool.setSelected(!button.isSelected());
            if (button.isSelected()) {
                dal.inserIntoRelMotivos(id,1);
            } else {

            }
        }
    });

    btnAnsiedade.setOnClickListener(new View.OnClickListener() {
        public void onClick(View button) {
            btnAnsiedade.setSelected(!button.isSelected());
            if (button.isSelected()) {
                dal.inserIntoRelMotivos(id,2);
            } else {

            }
        }
    });

    btnCafe.setOnClickListener(new View.OnClickListener() {
        public void onClick(View button) {
            btnCafe.setSelected(!button.isSelected());
            if (button.isSelected()) {
                dal.inserIntoRelMotivos(id,3);
            } else {

            }
        }
    });

    btnStress.setOnClickListener(new View.OnClickListener() {
        public void onClick(View button) {
            btnStress.setSelected(!button.isSelected());
            if (button.isSelected()) {
                dal.inserIntoRelMotivos(id,4);
            } else {

            }
        }
    });

    btnTempo.setOnClickListener(new View.OnClickListener() {
        public void onClick(View button) {
            btnTempo.setSelected(!button.isSelected());
            if (button.isSelected()) {
                dal.inserIntoRelMotivos(id,5);
            } else {
            }
        }
    });

    btnCansaco.setOnClickListener(new View.OnClickListener() {
        public void onClick(View button) {
            btnCansaco.setSelected(!button.isSelected());
            if (button.isSelected()) {
                dal.inserIntoRelMotivos(id,6);
            } else {

            }
        }
    });

    btnSono.setOnClickListener(new View.OnClickListener() {
        public void onClick(View button) {
            btnSono.setSelected(!button.isSelected());
            if (button.isSelected()) {
                dal.inserIntoRelMotivos(id,7);
            } else {

            }
        }
    });

    Next.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {

        }
    });

在每个button.setOnClickListner中,我想使用上一个活动的id,但它总是为0.我试图显示表,它总是为0。

方法“InserIntoRegSintomas”

public void insertIntoRegSintomas(Sintoma Sintoma) {
    ContentValues values = new ContentValues();
    values.put("Sintoma", Sintoma.getSintoma()); // recolhe o sintoma
    values.put("Dinicio", Sintoma.getDInicio());
    values.put("Hinicio", Sintoma.getHInicio());
    values.put("Dfim", Sintoma.getDFim());
    values.put("Hfim", Sintoma.getHFim());
    values.put("Intensidade", Sintoma.getIntensidade());
    this.db.insert("Reg_sintomas", null, values);
}

方法InsertIntoRelMotivo

  public void inserIntoRelMotivos (long Sintoma, long Motivo) {
    ContentValues values = new ContentValues();
    values.put("id_sintoma", Sintoma);
    values.put("id_motivo", Motivo);
    this.db.insert("Sintoma_motivos", null, values);
}

0 个答案:

没有答案