从ArrayAdapter获取对象的位置返回-1

时间:2018-06-10 14:56:01

标签: android

即使对象存在,从ArrayAdapter获取对象的位置也会返回-1。我没有为我的对象定义自定义ArrayAdapter,但在我的对象中定义了toString()方法。

    spinner_formula = findViewById(R.id.formula_spinner);
    List<Formula> formulas = formulaViewModel.getAllFormulas_();
    ArrayAdapter<Formula> formulaArrayAdapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_item, formulas);
    formulaArrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinner_formula.setAdapter(formulaArrayAdapter);
    if (toClass.equals("BottleCurrent")) {
        Log.v("test", "Ok");
        Bottle bottle = bottleViewModel.getBottle(id);
        Log.v("test", bottle.getId());
        Log.v("test", formulaViewModel.getFormula(bottle.getFormulaID()).getName());
        Log.v("test", ""+formulaArrayAdapter.getPosition(formulaViewModel.getFormula(bottle.getFormulaID())));
        spinner_formula.setSelection(formulaArrayAdapter.getPosition(formulaViewModel.getFormula(bottle.getFormulaID())));
    }

我知道getFormula可以记录所需的值,但我不确定为什么获取该对象的位置会返回-1。

0 个答案:

没有答案