2017-02-21 21 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に任意のデータを追加していません。 データをadapterに設定してからsetSelection(0,true)に電話すると、お手伝いできます。

+0

R.array.atco_arrayは、値を取得する場所です。それらはvaluesフォルダのファイルに格納されます。そして、矢印をクリックして値を選択すると表示され、タブ自体には表示されません。 –

+0

CharSequenceが必要なため、文字列を取得しているため、機能していません。問題はあなたの行に「これ」とあると思います。 –

+0

私の編集した回答を確認してください –

関連する問題