2017-02-21 41 views
1

只有當我點擊微調箭頭時,微調器的選項纔可見。但是,默認文本和選定的文本無法顯示。微調文本不顯示默認值,也不顯示選定的值

這是微調的XML:

<Spinner 
    android:layout_width="200dp" 
    android:layout_height="wrap_content" 
    android:id="@+id/spinner1" 
    android:ems="10" 
    android:textColor = "#000000" 
    android:layout_alignTop="@+id/roleNameTag" 
    android:layout_alignStart="@+id/insertPass" /> 

這是java代碼:

public class LoginActivity extends AppCompatActivity implements AdapterView.OnItemSelectedListener { 

ArrayAdapter<CharSequence> adapter; 
Spinner spinner; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.login_page); 

    spinner = (Spinner)findViewById(R.id.spinner1); 
    /*ArrayAdapter<String> adapter = new ArrayAdapter<String>(LoginActivity.this, 
      android.R.layout.simple_spinner_item,R.id.spinner1); */ 


    adapter = ArrayAdapter.createFromResource(getApplicationContext(), 
      R.array.atco_array, android.R.layout.simple_spinner_item); 

    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    spinner.setAdapter(adapter); 
    spinner.setOnItemSelectedListener(this); 
    spinner.setSelection(0,true); //set the default value 
} 
public void onItemSelected(AdapterView<?> parent, View v, int position, long id) { 
    // An item was selected. You can retrieve the selected item using 
    // parent.getItemAtPosition(pos) 

    //here however, we just set the spinner value to the one selected 
    String text = spinner.getSelectedItem().toString(); 
    int spinnerPosition = adapter.getPosition(text); 
    spinner.setSelection(spinnerPosition); 
    } 

@Override 
public void onNothingSelected(AdapterView<?> parent) { 
    // Another interface callback 
    spinner.setSelection(0,true); //set the default value 
} 
} 

這是我曾嘗試:

Spinner control not showing the selected text

Android: setSelection having no effect on Spinner

這些是我發現的唯一相關的。

我將文字顏色設置爲黑色。 設置默認值,在onCreate和onNothingSelected方法中的setAdapter之後都沒有任何值。 在setSelection函數中包含「true」布爾值。

Android API v21

幫助?

回答

0
adapter = new ArrayAdapter<String>(LoginActivity.this, android.R.layout.simple_spinner_item, atco_array); 

您沒有向adapter添加任何數據以顯示在微調器中,因此發生。 在致電setSelection(0,true)之前將數據設置爲adapter,這可能對您有所幫助。

+0

R.array.atco_array是獲取其值的地方。它們存儲在值文件夾中的文件中。我說,當我單擊箭頭選擇它們時,這些值是可見的,但不顯示在選項卡本身 –

+0

不起作用,因爲它需要一個CharSequence並且它正在獲取一個String。我認爲問題出在你的線上的「這個」。 –

+0

檢查我編輯的答案 –