用 Parse.com 动态填充后获取 Spinner Selection

Get Spinner Selection after dynamically filling it with Parse.com

我试图在使用 Parse.com

填充微调器后获取微调器选择

这是我使用时得到的 uniSpinner.getSelectedItem().toString(); 这是我得到的:

com.parse.ParseObject@"Some numbers here, not the ID stored in parse"

下面的代码也产生相同的结果:

Toast.makeText(parent.getContext(), "test: " +
            parent.getItemAtPosition(position).toString(), Toast.LENGTH_LONG).show();

这是我创建微调器的代码:

 public void uniSpinnerSetup()
{
    ParseQueryAdapter.QueryFactory<ParseObject> factory = new ParseQueryAdapter.QueryFactory<ParseObject>() {
        public ParseQuery create() {
            ParseQuery query = new ParseQuery("University");
            return query;
        }
    };

    uniSpinner = (Spinner) findViewById(R.id.uniSpinner);

    ParseQueryAdapter<ParseObject> adapter = new ParseQueryAdapter<ParseObject>(this, factory);
    adapter.setTextKey("name");
    uniSpinner.setAdapter(adapter);
    uniSpinner.setSelection(1);
    uniSpinner.setOnItemSelectedListener(new mySpinnerListener());
}

class mySpinnerListener implements Spinner.OnItemSelectedListener
{
    @Override
    public void onItemSelected(AdapterView parent, View v, int position,long id) {
        // TODO Auto-generated method stub
        Toast.makeText(parent.getContext(), "test: " +
                parent.getItemAtPosition(position).toString(), Toast.LENGTH_LONG).show();

    }

    @Override
    public void onNothingSelected(AdapterView parent) {
        // TODO Auto-generated method stub
        // Do nothing.
    }

}

我四处寻找尝试解决,没有找到解决办法!有什么帮助吗?

(正确答案在评论区)

将您的适配器作为字段变量移出并使用它获取您的对象:

ParseQueryAdapter<ParseObject> adapter;

 public void uniSpinnerSetup()
{
    ParseQueryAdapter.QueryFactory<ParseObject> factory = new ParseQueryAdapter.QueryFactory<ParseObject>() {
        public ParseQuery create() {
            ParseQuery query = new ParseQuery("University");
            return query;
        }
    };

    uniSpinner = (Spinner) findViewById(R.id.uniSpinner);

    adapter = new ParseQueryAdapter<ParseObject>(this, factory);
    adapter.setTextKey("name");
    uniSpinner.setAdapter(adapter);
    uniSpinner.setSelection(1);
    uniSpinner.setOnItemSelectedListener(new mySpinnerListener());
}

class mySpinnerListener implements Spinner.OnItemSelectedListener
{
    @Override
    public void onItemSelected(AdapterView parent, View v, int position,long id) {
        // TODO Auto-generated method stub
        ParseObject theSelectedObject = adapter.getItem(position);
        Toast.makeText(parent.getContext(), "test: " +
                theSelectedObject.toString(), Toast.LENGTH_LONG).show();

    }

    @Override
    public void onNothingSelected(AdapterView parent) {
        // TODO Auto-generated method stub
        // Do nothing.
    }

}