我正在尝试用一个JSON对象填充一个Spinner,我将从一个安静的API中提取。
但我无法弄清楚如何让适配器为微调器工作。我尝试了getActivity()
并尝试了this
关键字。两个人都没有工作,我在Google上找不到任何人在这个环境中试图更新微调器的东西。
这是我正在使用的代码。 http://pastebin.com/bQWDHekB。当我getActivity()
时,The method getActivity() is undefined for the type new Runnable(){}
但是当我使用this
时会说The constructor ArrayAdapter<String>(new Runnable(){}, int, String[]) is undefined
- 编辑 -
根据Maartens的回答,我发现使用MainActivity.this
比getApplicationContext()
效果更好。使用getApplicationContext()
时,它倾向于使用不同的样式,并使我的微调器在白色背景上有白色文本。希望这可以帮助那些和我一样有麻烦的人。
答案 0 :(得分:0)
嗯,这是因为Runnable
没有getActivity()
方法。
您可以通过替换
来获取对包装活动的引用new ArrayAdapter<String>(getActivity(), android.R.layout.simple_spinner_dropdown_item, array_spinner);
通过
new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_spinner_dropdown_item, array_spinner);
或者,因为您只需要Context
new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_spinner_dropdown_item, array_spinner);
相当于
new ArrayAdapter<String>(MainActivity.this.getApplicationContext(), android.R.layout.simple_spinner_dropdown_item, array_spinner);