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

标签 android android-studio parse-platform android-spinner getselection

我试图在使用 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.
    }

}

关于android - 使用 Parse.com 动态填充后获取 Spinner Selection,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29462304/

相关文章:

multithreading - 通过 block 完成在后台查找对象

swift - 用户使用 PFFacebookUtils 登录时取消选择 Facebook 权限

c# - Android 设备上的表面光闪烁

android - 可以在 Android TV 应用程序中嵌入电视信号吗?

java - 如何从一个 Activity 访问另一个类的用户输入?

安卓工作室 0.8.1 : New project and can't preview the L version in the renderer of phones

java - 与多个 Activity 共享抽屉导航

android - 在android应用程序的Onclick监听器方法之外调用方法

android - 如何同步协程?

ios - 注销 PFuser 将您带回登录屏幕,但 navigationController 现在是空白的?