スピナーのオプションは、スピナーの矢印をクリックしたときにのみ表示されます。ただし、デフォルトのテキストと選択されたテキストは表示されません。スピナーのテキストにデフォルト値も選択した値も表示されません
これは、スピナーのための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
ヘルプ?
R.array.atco_arrayは、値を取得する場所です。それらはvaluesフォルダのファイルに格納されます。そして、矢印をクリックして値を選択すると表示され、タブ自体には表示されません。 –
CharSequenceが必要なため、文字列を取得しているため、機能していません。問題はあなたの行に「これ」とあると思います。 –
私の編集した回答を確認してください –