2012-04-26 34 views
43

我有5個紡紗廠。爲了對此做出總結。如何獲得微調器選定的項目值爲字符串?

這是微調在XML

<Spinner 
      android:id="@+id/text_interested" 
      android:layout_span="2" 
      android:layout_width="wrap_content" 
      android:layout_height="60px" 
      android:entries="@array/interestedarrays" 
      android:prompt="@string/interestedprompt" /> 

這是微調在Java中

submitbtn.setOnClickListener(new OnClickListener() { 
     public void onClick(View v) { 
interested.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
         public void onItemSelected(
           AdapterView<?> adapterView, View view, 
           int i, long l) { 
          interesting = interested.getItemAtPosition(i).toString(); 
         } 

         public void onNothingSelected(
           AdapterView<?> adapterView) { 

         } 
        }); 
    } 
}); 

說明這裏:

頁有一個按鈕。此按鈕將在按下時讀取微調器中的數據。我用這個檢查了輸出

System.out.println(interested.getItemAtPosition(i).toString()); 

它給了我什麼都不是空。

如何檢索值並將其字符串?

+0

我肯定,你想從每當一個按鈕 – 2012-04-26 10:50:04

+0

用戶點擊設置你的按鈕的onClick這interested.getSelectedItem()。的toString外部和內部的onclick方法使用setOnItemSelectedListener一個微調選定的項目() ; – 2012-04-26 10:58:16

+0

謝謝,我的錯誤被放在按鈕監聽器裏面的聽衆,爲什麼沒有迴應 – 2012-04-26 11:18:48

回答

124

試試這個:

String text = mySpinner.getSelectedItem().toString(); 

像這樣,你可以得到不同的紡紗廠的價值。

7

您可以通過使用得到微調所選擇的項目,

interested.getSelectedItem().toString(); 
0

通過實施SpinnerAdapter的適配器對象,我使用interested.getItem(i).toString()

4

試試這個

final Spinner cardStatusSpinner1 = (Spinner) findViewById(R.id.text_interested); 
    String cardStatusString; 
    cardStatusSpinner1.setOnItemSelectedListener(new OnItemSelectedListener() { 

     @Override 
     public void onItemSelected(AdapterView<?> parent, 
       View view, int pos, long id) { 
      cardStatusString = parent.getItemAtPosition(pos).toString(); 
     } 

     @Override 
     public void onNothingSelected(AdapterView<?> arg0) { 
      // TODO Auto-generated method stub 

     } 
    }); 

final Button saveBtn = (Button) findViewById(R.id.save_button); 
    saveBtn .setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View arg0) { 
      // TODO Auto-generated method stub 

      System.out.println("Selected cardStatusString : " + cardStatusString); //this will print the result 
     } 
    }); 
12
String Text = mySpinner.getSelectedItem().toString(); 

OR

mySpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
    public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { 
     Object item = parent.getItemAtPosition(position); 
    } 
    public void onNothingSelected(AdapterView<?> parent) { 
    } 
}); 
+0

但是如何獲得項目0 ?! – 2016-07-04 06:44:29

1

當您從微調的任何值,那麼你得到選擇的值,

interested.getSelectedItem().toString(); 
4

如果你的S平納被SQLite的光標填充,那麼解決的辦法是:

Spinner mySpin = (Spinner) findViewById(R.id.myspin); 
mySpin.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 
@Override 
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { 
      SQLiteCursor item = (SQLiteCursor) parent.getItemAtPosition(position); 
      String value = String.valueOf(item.getString(0)); 
      Toast.makeText(getApplicationContext(), "The option is:" + value , Toast.LENGTH_SHORT).show(); 
} 

PS:在item.getString(0) - > 0是列上的光標,你想要得到的指數。

2

除了建議,

String Text = mySpinner.getSelectedItem().toString(); 

你可以做,

String Text = String.valueOf(mySpinner.getSelectedItem()); 
0

做到這一點,最好的辦法是: -

String selectedItem = spinner.getSelectedItem().toString(); 

,你可以在這裏指的文檔:Spinners

0

試試這個

sp1 = String.valueOf(spinner.getSelectedItem()); 
相關問題