2011-12-28 14 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()