2011-12-28 44 views
0

我想在旋转器中拾取项目后设置变量。由于我是Java新手,我不知道这样做的最好方法是什么。我试图在选中它之后对其进行测试,但是我无法使其正常工作。 必须创建一个新变量,初学者必须为0.5,高级为1,临为1.5。只要我正在开发我的应用程序,我也希望在选择某个项目时显示包含变量值的Toast消息。选择旋转器项目后设置变量 - Android

希望有人能帮助我,因为我现在被卡住了。

我的Java代码:

public class AlbumsActivity extends Activity{ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.albums_layout); 

    Spinner spinner = (Spinner) findViewById(R.id.spinner_experience); 
    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
      this, R.array.experience_array, android.R.layout.simple_spinner_item); 
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    spinner.setAdapter(adapter); 

    class MyOnItemSelectedListener implements OnItemSelectedListener { 

     public void onItemSelected(AdapterView<?> parent, 
       View view, int pos, long id) { 
      Object test = spinner.getSelectedItem(); 
      if "Pro".equals(test) { 
       // Do something 
       Toast.makeText(parent.getContext(), "The planet is " + 
        parent.getItemAtPosition(pos).toString(), Toast.LENGTH_LONG).show(); 
      } 
     } 

     public void onNothingSelected(AdapterView<?> parent) { 
      // Do Nothing 
     } 
    } 

    spinner.setOnItemSelectedListener(new MyOnItemSelectedListener()); 
} 

布局XML

<LinearLayout 
    android:orientation="vertical" 
    android:padding="10dip" 
    android:id="@+id/linearLayout_Experience" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content"> 
    <TextView 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="10dip" 
     android:text="@string/experience_prompt" /> 
    <Spinner 
     android:id="@+id/spinner_experience" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:drawSelectorOnTop="false" 
     android:prompt="@string/experience_prompt" /> 
</LinearLayout> 

而且我对微调的字符串:

<resources> 

<string name="experience_prompt">Select your experience</string> 
<string-array name="experience_array"> 
    <item>Beginner</item> 
    <item>Advanced</item> 
    <item>Pro</item> 
</string-array> 

回答

0

我的头顶部(所以可能是错别字和其他错误RS):

public void onItemSelected(AdapterView<?> parent, 
      View view, int pos, long id) { 
     if(pos == 0) { 
      // Beginner 
      Toast.makeText(parent.getContext(), "Beginner = 0.5", Toast.LENGTH_LONG).show(); 
     } else if(pos == 1) { 
      // Advanced 
      Toast.makeText(parent.getContext(), "Advanced = 1", Toast.LENGTH_LONG).show(); 
     } else { 
      // Pro 
      Toast.makeText(parent.getContext(), "Pro = 1.5", Toast.LENGTH_LONG).show(); 
     } 
    } 

你可以用一个HashMap来保存键云杉它了很多:针对不同层次的你的建议在这里值对的,但如果你只有三个级别,那么这应该工作正常。

0

试试这个:

import android.app.Activity; 
import android.view.*; 
import android.os.Bundle; 
import android.widget.AdapterView; 
import android.widget.AdapterView.OnItemSelectedListener; 
import android.widget.ArrayAdapter; 
import android.widget.Spinner; 
import android.widget.Toast; 

public class AlbumsActivity extends Activity { 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     final Spinner spinner = (Spinner) findViewById(R.id.spinner_experience); 
     ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
       this, R.array.experience_array, android.R.layout.simple_spinner_item); 
     adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
     spinner.setAdapter(adapter); 


     spinner.setOnItemSelectedListener(new OnItemSelectedListener() { 
      @Override 
      public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) { 
       Object test = spinner.getSelectedItem(); 
       Toast.makeText(AlbumsActivity.this, "The planet is " + 
         spinner.getItemAtPosition(position).toString(), Toast.LENGTH_LONG).show(); 
      } 

      @Override 
      public void onNothingSelected(AdapterView<?> parentView) { 
       // your code here 
      } 

     }); 

    } 
} 
0

尝试与String test = spinner.getSelectedItem().toString();

而且parent.getItemAtPosition(pos).toString()更换Object test = spinner.getSelectedItem();将返回视图的ID微调的文本中没有。为了得到这个文本使用:

TextView TV=parent.getItemAtPosition(pos); 

TV.getText().toString();

更换 parent.getItemAtPosition(pos).toString()