我的Spinner卡住了,我似乎无法获取它来检索所选项目。它停留在字符串数组的第一项。我希望用户选择项目,然后根据他们的选择在地图上放置标记。我不想预先确定该项目并检索我正在使用:
spinner.getSelectedItem().toString();
它应该简单直接。无需为string-array中的每个项编写代码。使用.trim()。equals("")。 biutton使用android:onClick而不是setOnClickListener()。
这是我的代码:
onMapReady()调用此方法:
public void talktomap(){
//variables have been declared arleady
SP_course = (Spinner)findViewById(R.id.select_subject);
course= SP_course.getSelectedItem().toString();
//talk to map
if (loc=="Sydney" && level=="Form 3" && course=="Biology"){
map.addMarker(new MarkerOptions().position(MAU).title("Biology").snippet("You found us").alpha(0.7f).icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_AZURE)));
map.addMarker(new MarkerOptions().position(PortLoius1).title("Biology").snippet("..add your description here..").alpha(0.7f).icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_BLUE)));
map.addMarker(new MarkerOptions().position(new LatLng(-20.353, 57.65)).title("...").snippet("Biology Tutor Here").alpha(0.7f));
}else if (loc=="melbourne" && level=="Form 4" && course=="English"){
map.addMarker(new MarkerOptions().position(new LatLng(-20.2012, 57.6)).title("English").snippet("English Tutor Here").alpha(0.7f).icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_MAGENTA)));
map.addMarker(new MarkerOptions().position(new LatLng(-20.2034, 57.6)).title("English").snippet("English Tutor Here").alpha(0.7f));
}else if (loc=="new york" && level=="Form 3" && course=="Chemistry"){
map.addMarker(new MarkerOptions().position(BonneTerre).title("Chemistry").snippet("Chemistry Tutor Here").alpha(0.7f).icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_MAGENTA)));
map.addMarker(new MarkerOptions().position(BonneTerre1).title("Chemistry").snippet("Chemistry Tutor Here").alpha(0.7f).icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_MAGENTA)));
}else {
Toast.makeText(this,"Sorry. No results found",Toast.LENGTH_LONG).show();
}
}
当应用程序启动时,它只显示吐司意味着它可以输入条件。当我选择不同的项目并按下按钮时,应用程序崩溃。
字符串数组卡在'选择主题'
<string-array name="select_subject">
<item>-- Choose subject --</item>
<item>Biology</item>
<item>Chemistry</item>
<item>English</item>
<item>French</item>
<item>Mathematics</item>
</string-array>
答案 0 :(得分:0)
检查初始化SP_course
变量的方式。
在阅读Google的documentation后,这是他们的示例代码。
Spinner spinner = (Spinner) findViewById(R.id.spinner);
// Create an ArrayAdapter using the string array and a default spinner layout
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
R.array.planets_array, android.R.layout.simple_spinner_item);
// Specify the layout to use when the list of choices appears
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
// Apply the adapter to the spinner
spinner.setAdapter(adapter);
此外,来自相关SO question的代码段。
Spinner spinner = (Spinner)findViewById(R.id.spinner);
String text = spinner.getSelectedItem().toString();
希望这有帮助!