Android Spinner将不会启动OnItemSelected,并且当前选定的项目不会显示在Spinner中 [英] Android Spinner will not launch OnItemSelected and current selected item is not displayed in Spinner

查看:81
本文介绍了Android Spinner将不会启动OnItemSelected,并且当前选定的项目不会显示在Spinner中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

以下是正在运行的应用程序的简单gif,以显示我的意思:视频Gif在这里

Here is a simple gif of the application in action to show what I mean: Video Gif here

我有一个微调器,这是我的XML代码:

I have a Spinner and here is my XML code for it:

<Spinner
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:id="@+id/uniSpinner"
    android:layout_weight="1.5"
    android:spinnerMode="dialog"
    android:prompt="@string/type_default"/>

我遵循了一些教程,并在此处四处浏览以使用parse.com向微调框动态添加内容.内容已成功添加,但是在列表中选择一个项目时不会触发OnItemSelected,所选项目也不会显示在微调器中.

I have followed a few tutorials and browsed around on here to dynamically add content to the spinner using parse.com. The content is added successfully but the OnItemSelected does not fire when selecting an item on the list, the selected item also does not show in the spinner.

oncreate上方的代码:

Code above oncreate:

Spinner uniSpinner;
List<String> uniList;

oncreate中的代码:

Code in oncreate:

protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    // Get the view from main.xml
    setContentView(R.layout.activity_register);

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

    uniList = new ArrayList<String>();

    addItemsToSpinner();
    InitialSetUpUI();

创建微调器的代码:

public void addItemsToSpinner()
{
    ParseQuery<ParseObject> query = ParseQuery.getQuery("University");

    query.findInBackground(new FindCallback<ParseObject>() {
        public void done(List<ParseObject> objects, ParseException e) {
            if (e == null)
            {
                for(ParseObject university : objects){
                    uniList.add(university.getString("name"));
                }
            }
            else
            {

            }
        }
    });
}

public void InitialSetUpUI()
{
    Spinner spinner1 = (Spinner) findViewById(R.id.uniSpinner);

    ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_spinner_item,uniList);
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinner1.setAdapter(adapter);

    spinner1.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.
    }

}

不知道出什么问题了,尝试了许多不同的教程和创建同一事物的方法.没有任何效果,也许我不确定一些简单的事情!如果有人可以帮助,那就太好了:)

Have no idea what is wrong, have tried many different tutorials and ways of creating the same thing. Nothing has worked, maybe I am missing something simple I'm not sure! If anyone could help that would be great :)

推荐答案

最后遇到了这个问题,对我有帮助,我将InitialSetupUI函数更改为:

Finally came across this which helped me, I changed my InitialSetupUI function to this:

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());
}

不要问我它是如何工作的,但是它确实...现在我需要弄清楚如何从O.o中获取这些值

Don't ask me how it works lol, but it does...now I need to figure out how to get these values out O.o

这篇关于Android Spinner将不会启动OnItemSelected,并且当前选定的项目不会显示在Spinner中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆