Spinner陷入了Android 2.1.2

时间:2016-09-04 04:14:03

标签: android google-maps spinner

我的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>

1 个答案:

答案 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();

希望这有帮助!