gpt4 book ai didi

java - Android Spinner 不会启动 OnItemSelected 并且当前选定的项目不会显示在 Spinner 中

转载 作者:行者123 更新时间:2023-12-01 11:41:58 41 4
gpt4 key购买 nike

这是一个应用程序运行中的简单 gif,以显示我的意思:Video Gif here

我有一个 Spinner,这是我的 XML 代码:

<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 不会触发,所选项目也不会显示在微调器中。

上面的 oncreate 代码:

Spinner uniSpinner;
List<String> uniList;

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

}

不知道出了什么问题,尝试了许多不同的教程和创建相同内容的方法。没有任何效果,也许我错过了一些简单的东西,我不确定!如果有人可以提供帮助那就太好了:)

最佳答案

最后发现这个对我有帮助,我将我的 InitialSetupUI 函数更改为:

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

关于java - Android Spinner 不会启动 OnItemSelected 并且当前选定的项目不会显示在 Spinner 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29453267/

41 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com