微调文本不显示默认值,也不显示所选值

时间:2017-02-21 00:15:02

标签: java android text spinner

只有在我按下微调箭头时,才能看到微调器的选项。但是,默认文本和所选文本无法显示。

这是微调器的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和onNreSelected方法中的setAdapter之后设置默认值,仍然没有。 在setSelection函数中包含“true”布尔值。

Android API v21

帮助?

1 个答案:

答案 0 :(得分:0)

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

您没有将任何数据添加到adapter以在Spinner中显示,因此会发生这种情况。 在致电adapter之前将数据设置为setSelection(0,true),它可能对您有帮助。