[英]Android Spinner will not launch OnItemSelected and current selected item is not displayed in Spinner
这是正在运行的应用程序的简单gif,以显示我的意思: 此处为视频Gif
我有一个微调器,这是我的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());
}
不要问我它是如何工作的,但是它确实可以。。。现在我需要弄清楚如何将这些价值体现出来。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.