从Spinner中获取字符串,并在条件语句中使用它

问题描述:

我有这个程序将更改从Calendar获得的值的小时数和分钟数。从Spinner中获取字符串,并在条件语句中使用它

所以我只改变了一小时,我在这里做了一个时区的事情。所以,我所做的是在Strings.xml中创建一个TimeZones数组,并将其放在一个微调器上。然后,当我更改微调器上的项目时,我将文本视图的文本设置为微调器上的选定值。

我可以做到这里。

我的问题在于条件语句。我有一个获取TextView中文本的按钮,我将在我的If语句中使用它。这是我的语法。

这使我从Spinner中的值到TextView。

Spinner TimezoneSelect = (Spinner)findViewById (R.id.spinner1); 
    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.timzones, R.layout.support_simple_spinner_dropdown_item); 
    TimezoneSelect.setAdapter(adapter); 
    //final String SelectedTimeZone = TimezoneSelect.getSelectedItem().toString(); 
    TimezoneSelect.setOnItemSelectedListener(new OnItemSelectedListener(){ 

     @Override 
     public void onItemSelected(AdapterView<?> parent, View view, 
       int position, long id) { 
      // TODO Auto-generated method stub 
      TimeZoneStatus = parent.getItemAtPosition(position).toString(); 
      TimeZoneDisplay.setText(TimeZoneStatus); 

而这是错误的If语句。

 public void onClick(View v) { 
     // TODO Auto-generated method stub 
     int newhour; 
     String TimeZoneNow = TimeZoneStatus.trim().toString(); 
     String Jakarta = "UTC+7:00 (Jakarta)"; 
     if ((TimeZoneNow == "UTC+7:00(Jakarta)") || (TimeZoneNow == Jakarta)) 
     //^lol desperate code 
     { 
      newhour = hour - 1; 
      TimeText.setText(newhour + ":" + minutes); 
     } 

    } 

    }); 

帮助! :C

+0

[Java中比较字符串(http://*.com/questions/513832/how-do-i-compare-strings-in-java) – user2450263 2014-10-17 04:50:57

使用此代码

if ((TimeZoneNow .equalsIgnoreCase(Jakarta)) 
    //^lol desperate code 
    { 
     newhour = hour - 1; 
     TimeText.setText(newhour + ":" + minutes); 
    } 
+1

这是我使用,但我确定所有.equals的都是正确的。谢谢。 :) – 2014-10-17 05:07:48

尝试这种方式

if(TimeZoneNow.equals(Jakarta) 

用于字符串比较

.equals()方法试试这个:

在你的情况与eqauls()更换==

说明:

==运算符用于比较的参考。

equals()用于比较内容。